목록공부한거/컴퓨터구조 (4)
눈팅하는 게임개발자 블로그
메모리 계층 보조기억장치 : 엄청 느림, 대용량, 전원이 없어도 데이터가 저장됨. 주 기억장치 : 느림, 전원이 있어야 동작함(데이터가 저장되지 않음) 캐시 메모리 : 빠름, 용량이 매우 적음, 프로세서(CPU)에 액세스 가능. 메모리 접근 시간 비율이 대략적으로 캐시 : 주 기억장치 : 보조기억장치 = 1 : 10 : 1000 이라고 한다. 계층 구조를 나누는 이유 전체 메모리 시스템의 가격을 최소화 하면서 가능한 한 최고의 평균 접근속도를 달성하기 위해. 기본적으로 저장 용량과 접근 시간의 Trade Off이다. Cache Memory 캐시는 하드웨어로 구현된 해쉬 테이블과도 같으며 캐시 메모리의 동작 개념은 참조의 국한성을 기반으로 한다. 참조의 국한성이란 대부분의 프로그램에서 일정 시간 동안의 메..
Hazard 명령어 파이프라인이 정상적인 동작에서 벗어나게 되는 요인 Structual Hazard 자원 충돌이 원인이 되어 발생하는 Hazard. 두 세그먼트(파이프라인 공정)가 동시에 하나의 메모리에 접근할 때 발생. 위의 예시에서는 MEM Step과 IF Step이 같은 메모리를 공유하는 경우 i + 3에서 IF가 해당 메모리에 액세스하려 했으나 이전의 MEM이 사용하고 있었으므로 한 Clock이 밀리게 된다. 해결 방법 - 하드웨어 자원의 복제/분리. - 명령어 메모리와 데이터 메모리를 분리. - 메모리나 레지스터의 입출력 버스를 분리. Data Hazard 데이터 의존성이 원인이 되어 발생하는 Hazard. 특정 명령어가 이전 명령어의 결과에 의존하여 수행되는데, 그 값이 아직 준비되지 않았을 ..
컴파일 된 소스 코드로 실행 파일 한 줄 한 줄의 명령어를 Instruction이라 한다. 프로그램을 실행한다 함은 프로그램 안에 있는 여러 Instruction을 차례대로 수행하는 것을 의미한다. Instruction은 크게 3종류로 구분된다. Memory-reference Instruction : 메모리를 참조하는 명령어 Register-reference Instruction : 메모리를 참조하지 않고 현재 레지스터의 값으로만 연산하는 명령어 I/O Instruction : 입출력과 관련된 명령어. Instruction Code (명령어) Instruction Code는 세 부분으로 나뉜다. Operation Code Field : 어떤 Operation을 수행할 것인가를 나타내는 부분. Addres..
Register CPU가 연산을 하기 위해 필요한 데이터를 저장하는 CPU 내부의 수십 개의 작은 저장 장소. 컴퓨터의 처리장치 중 속도가 가장 빠르다. (레지스터 > 캐시 > 메모리 > 보조기억장치 순) n개의 Filp/Flip으로 구성되어 있는데 예를 들면 32비트 레지스터는 32개의 Flip/Flop으로 구성된다. Word의 비트에 따라 연산을 수행한다. CPU 내부의 주요 레지스터로는 MAR, PC, IR 등이 있다. MAR(Memory Address Register) : 메모리의 주소를 저장하는 레지스터 PC(Program Counter) : 다음에 수행될 명령어의 위치를 저장하는 레지스터 IR(Instruction Register) : 현재 수행중인 명령어를 저장하는 레지스터 AC(Accumu..