본문 바로가기

CS22

명령어 병렬 처리 기법 [혼공컴구] 1. 명령어 파이프 라인 - 명령어 처리 과정 (클럭 단위) 1. 명령어 인출 (Instruction Fetch) 2. 명령어 해석 (Instruction Decode) 3. 명령어 실행 (Execute Instruction) 4. 결과 저장 (Write Back) - 단계가 겹치지 않는 경우에 CPU는 각 단계를 동시에 실행 가능하다. - 위의 각 단계에서 명령어1이 해석 단계에 들어갔다면, 인출 단계가 비게되는데 이때 명령어2가 인출단계에 들어가는 식으로 처리 - 따라서 파이프라이닝을 사용하면 명령어1 이후의 명령어2, 3, ... 부터는 실행까지 1클럭 주기만 필요하게 됨 - 이와같이 명령어들을 명령어 파이프라인에 넣고 동시에 처리하는 것을 명령어 파이프 라이닝이라고 함 2. 파이프 라인 위험 2-.. 2023. 11. 22.
컴퓨터 구조 - 클럭, 코어, 스레드 [혼공컴구] 1. 클럭 속도와 성능 - 컴퓨터 부품들은 클럭 신호에 맞춰 움직임 - CPU는 명령어 사이클이라는 정해진 흐름에 맞춰 명령어들을 실행 - 따라서 클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 그만큼 빠른 박자에 맞춰 움직임 - 즉, 클럭 속도가 높아지면 CPU는 명령어 사이클을 더 빠르게 반복 - 클럭 속도는 Hz단위로 측정 - 2.5 GHz는 1초에 클럭이 25억번 반복됨을 나타냄 2. 코어 - 명령어를 실행하는 부품 - ALU, 제어장치, 레지스터등이 포함된 하나의 세트가 하나의 코어가 됨 - CPU가 여러개의 코어를 가지고 있으면 멀티코어CPU 혹은 멀티코어 프로세서로 부름 - 코어마다 처리할 연산이 적절히 분배되지 않으면 코어 수에 비례하여 연산 속도가 증가하지 않음 3. 스레드 .. 2023. 11. 17.
컴퓨터 구조 - 명령어 사이클과 인터럽트 [혼공컴구] 1. 명령어 사이클 - 하나의 명령어를 처리하는 정형화된 흐름 - 프로그램 속 각각의 명령어들은 일정한 주기가 반복되며 실행 - 과정 - 인출 사이클 (fetch cycle) : 메모리에 있는 명령어를 CPU로 가지고 오는 단계 - 실행 사이클 (excution cycle) : 제어장치가 명령어 레지스터에 담긴 값을 해석하고, 제어 신호를 발생 - 간접 사이클 (indirect cycle) - 간접 주소 지정 방식 등에서는 유효 주소의 주소를 명시하므로 명령어를 인출한다고 바로 실행이 불가능 - 이 경우 명령어 인출을 위해 메모리 접근을 한 번 더 해야 하기 때문에 간접 사이클을 거침 - 인터럽트 - CPU의 작업을 방해하는 신호 - 종류 1. 동기 인터럽트 - CPU가 실행하는 프로그래밍 상의 오류와 .. 2023. 11. 17.
컴퓨터 구조 - CPU ( 코어 ) [혼공컴구] 1. CPU의 구조 1-1. ALU - 계산을 담당 - 동작 과정 1. 레지스터를 통해 피연산자를 받아들임 2. 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들임 3. 레지스터와 제어장치로부터 받아 들인 피연산자와 제어 신호로 산술 연산, 논리 연산등을 수행 4-1. 연산 결과는 바로 메모리에 저장하지 않고 일시적으로 레지스터에 저장 - 연산 결과는 특정 숫자나 문자, 메모리 주소 등으로 표현됨 - 연산 결과를 레지스터에 저장하는 이유는 메모리 접근 횟수를 줄여 속도를 향상 시키기 위함 4-2. 플래그 레지스터를 내보냄 - 음수 양수 구분 등 연간 결과에 대한 추가적인 정보를 담음 - 연산을 실행한 직후 플래그를 합쳐 연산 결과를 확인함 1-2. 제어장치 - 제어장치는 제어 신호를 내보내고, 명.. 2023. 11. 17.