[Operating System] CPU 구조 정리
dump of memory
- dump는 RAM의 모든 정보 콘텐츠를 가져와 스토리지 드라이브에 쓰는 프로세스이다. 즉, 특정 시점에서 컴퓨터 메모리 내용의 복사본이다.
- 충돌 또는 기타 문제의 원인을 식별하는 데 도움이 되므로 디버깅 목적에 유용할 수 있다.
fetch
- 컴퓨팅에서 “fetch”라는 용어는 일반적으로 메모리나 데이터베이스와 같은 특정 위치에서 무언가를 검색하는 프로세스를 나타낸다.
- 예를 들어, 컴퓨터의 메모리 계층 구조에서 CPU는 명령을 실행하기 위해 메인 메모리에서 명령을 “fetch”한다. 여기에는 CPU가 메모리 컨트롤러에 요청을 보내는 것과 관련되며 메모리 컨트롤러는 요청된 데이터를 메모리에서 검색하여 CPU로 다시 보낸다.
execute
-
컴퓨팅에서 “execute”라는 용어는 프로그램이나 명령을 실행하는 프로세스를 나타낸다.
-
일반적으로 프로그램 실행 프로세스에는 다음 단계가 포함된다.
- 프로그램은 운영 체제에 의해 메모리에 로드된다.
- CPU는 메모리에서 첫 번째 명령을 가져와 해독하고 명령 내용에 따라 수행할 조치를 결정한다.
- CPU는 지정된 작업을 수행하여 명령을 실행한다. 여기에는 계산 수행, 메모리의 데이터 액세스 또는 다른 하드웨어 또는 소프트웨어와의 상호 작용이 포함될 수 있다.
- CPU는 실행할 다음 명령을 찾을 위치를 알려주는 프로그램 카운터를 증가시킨다.
- 프로그램이 완료될 때까지 CPU가 가져오기, 디코딩 및 각 명령을 차례로 실행하면서 프로세스가 반복된다.
-
“execute”라는 용어는 명령이나 요청에 대한 응답으로 컴퓨터가 취하는 모든 작업을 지칭하기 위해, 보다 광범위하게 사용될 수도 있다. 예를 들어 컴퓨터가 문서 인쇄 명령을 “execute”하거나 결과 목록을 반환하여 검색어를 “execute”한다고 말할 수 있다.
decode
- 컴퓨팅에서 “decode”라는 용어는 인코딩된 데이터를 원래 형식으로 다시 변환하는 프로세스를 나타낸다. 즉, 명령어를 분석해서 처리할 컨트롤 신호를 만든다.
- “decoding”은 데이터를 압축된 형태로 전송하거나 저장한 다음 필요할 때 검색하여 사용할 수 있기 때문에 컴퓨팅에서 중요한 프로세스이다.
CPU 명령어
-
CPU(중앙 처리 장치) 명령은 컴퓨터의 CPU가 실행할 수 있는 명령이다. 이러한 지침은 컴퓨터의 하드웨어에서 제공되며 기본 기능을 수행하기 위해 운영 체제 및 응용 프로그램에서 사용된다.
-
CPU 명령은 다음과 같은 작업을 수행할 수 있다.
- 산술 연산 수행(예: 더하기, 빼기, 곱하기, 나누기)
- 논리 연산 수행(예: AND, OR, NOT)
- 값 비교(예: 두 값이 같은지, 크거나 작은지 확인)
- 메모리에 데이터 읽기 또는 쓰기
- 제어 구조(예: if-else, for, while)를 사용하여 실행 흐름 제어
-
CPU 명령은 어셈블리 언어로 작성되며 일반적으로 컴퓨터가 이해할 수 있는 기계 코드로 컴파일되거나 해석된다. CPU가 실행할 수 있는 명령어 집합을 명령어 집합이라고 한다. CPU마다 명령어 세트가 다르며 사용 가능한 명령어는 CPU의 성능과 기능에 상당한 영향을 미칠 수 있다.
CPU 내부 구성요소
-
CPU는 일반적으로 다음과 같은 몇 가지 다른 구성 요소로 구성된다.
- 산술 논리 장치(ALU): 더하기, 빼기, 비교와 같은 산술 및 논리 연산을 수행하는 CPU의 일부이다. 산술 논리 장치는 컴퓨터 중앙 처리 장치의 기본 설계 블록이다.
- 제어 장치(CU): 제어 장치는 메모리에서 명령을 가져와 해독하고 명령 내용에 따라 수행할 작업을 결정한다.
- 레지스터 세트: 처리되는 동안 데이터 및 명령을 임시로 저장하는 데 사용되는 CPU에서 사용할 수 있는 소량의 스토리지이다. 액세스 속도가 매우 빠르지만, 내부 회로가 복잡하여 큰 공간을 차지하기 때문에 CPU 내부의 레지스터 개수는 제한적이다. 용도에 따라 범용 레지스터와 특수 목적 레지스터로 구분된다.
- 캐시: 캐시는 자주 액세스하는 데이터 및 명령을 저장하는 데 사용되는 소량의 고속 메모리로, CPU가 더 빠르게 액세스할 수 있도록 한다.
- 버스 인터페이스 장치: 버스 인터페이스 장치는 시스템 버스를 통해 메모리 및 I/O 장치와 같은 시스템의 다른 구성 요소와 통신하는 역할을 한다.
-
CPU의 특정 구성 요소 및 디자인은 특정 모델 및 아키텍처에 따라 다를 수 있다.
register
- 컴퓨터 아키텍처에서 레지스터는 CPU(중앙 처리 장치)에서 사용할 수 있는 소량의 저장소이다.
-
레지스터는 CPU에서 처리하는 동안 데이터와 명령을 임시로 저장하는 데 사용된다.
-
아래는 특수 목적 레지스터의 종류이다.
- 프로그램 카운터(PC) 또는 명령어 레지스터(IR): CPU에서 실행 중인 현재 명령의 주소를 보유하는 레지스터이다.
- 범용 레지스터: 데이터를 저장하거나 중간 계산 결과를 저장하는 데 사용할 수 있는 레지스터이다.
- 부동 소수점 레지스터: 부동 소수점 숫자를 저장하고 조작하도록 특별히 설계된 레지스터이다.
- 메모리 주소 레지스터(MAR) 및 메모리 버퍼 레지스터(MBR): 이 레지스터는 각각 액세스되는 메모리 주소와 메모리에 쓰거나 메모리에서 읽는 데이터를 보유합니다.
- 특수 용도 레지스터의 정확한 유형과 특정 기능은 CPU의 아키텍처 및 설계에 따라 다를 수 있다. 그러나 그 목적은 CPU가 필요한 정보에 빠르고 직접적으로 액세스할 수 있도록 하여 CPU가 명령을 보다 효율적으로 관리하고 실행하도록 돕는 것이다.
- 레지스터는 메인 메모리보다 액세스 속도가 훨씬 빠르므로 CPU는 레지스터를 사용하여 빠르게 액세스해야 하는 데이터를 저장한다.
- CPU에서 사용 가능한 레지스터의 수와 크기는 성능에 상당한 영향을 미칠 수 있다.
Fetch Cycle
- MAR ← PC
- PC가 가리키는 기억장치의 위치를 MAR에 저장시킨다. PC의 값이 외부의 주소버스로 가기 위해서는 MAR을 거쳐야 한다.
- MBR ← M[MAR], PC ← PC + 1
- MAR을 거쳐서 외부로 나가고, 메모리(M)의 값을 찾아 데이터 버스를 타고 MBR에 저장시켜준다. 그런다음 PC 값은 1 증가시켜준다.
- IR ← MBR
- MBR이 해석되기 위해서 IR을 거쳐야 한다.
Execute Cycle
-
아래의 과정은 명령어에 따라 달라진다.
- 데이터 이동: CPU와 기억장치, I/O장치 간에 데이터를 이동한다.
- ex) LOAD addr
- 데이터 처리: 데이터에 대하여 산술,논리 연산을 수행한다.
- ex) STA addr
- 데이터 저장: 연산결과 데이터나 입력장치로부터 읽어들인 데이터를 기억장치에 저장한다.
- ex) ADD addr
- 프로그램 제어: 프로그램의 실행 순서를 결정한다.
- ex) JUMP addr
- ADD addr 명령어 연산을 보면 다음과 같이 진행된다.
- 데이터 이동: CPU와 기억장치, I/O장치 간에 데이터를 이동한다.
- T0 : MAR <- IR(Addr)
- T1 : MBR <- M[MAR]
-
T2 : AC <- AC + MBR
- Fetch Cycle로 메모리로부터 가져온 명령어 ADD addr가 IR에 있을 것이다.
- 이를 이용해 다시 명령어 주소를 MAR로 보내고 기억장치의 MAR의 값을 MBR로 가져와서 AC의 값과 더해준 뒤, 다시 AC에 저장해준다.
PC (program counter)
- PC는 실행 중인 현재 명령의 주소를 보유하는 컴퓨터 CPU(중앙 처리 장치)의 레지스터이다.
- 각 명령어를 가져와 실행한 후 자동으로 증가하므로 CPU는 다음에 실행할 명령어를 알 수 있습니다.
- 명령 실행을 조정하고 프로세서 내 데이터 흐름을 관리하는 CPU 제어 장치의 중요한 부분이다.
- 실행 중인 프로그램의 현재 위치를 추적하고 다음에 가져올 명령을 결정하는 데 사용된다.
- 일부 아키텍처에서 프로그램 카운터는 프로세서의 현재 상태 또는 실행될 다음 명령의 주소와 같은 다른 정보를 저장하는 데에도 사용될 수 있습니다.
- 일부 CPU에는 기능이나 목적이 각각 다른 여러 개의 프로그램 카운터가 있을 수 있습니다.
- program counter는 종종 PC로 약칭되며 명령 포인터 또는 명령 주소 레지스터라고도 한다.
Bus
- CPU 또는 중앙 처리 장치의 버스는 CPU와 메모리 사이와 같이 컴퓨터의 다른 부분 사이에서 데이터를 전송하는 일련의 전기 전도체 또는 경로를 나타낸다.
- 컴퓨터에는 데이터 버스, 주소 버스 및 제어 버스를 포함하여 여러 유형의 버스가 있다.
- 데이터 버스는 CPU에서 처리 중인 데이터를 전달한다.
- 주소 버스는 CPU와 주고받는 메모리 주소를 전달한다.
- 제어 버스는 컴퓨터의 다른 부분의 작동을 조정하는 제어 신호를 전달한다.
Leave a comment