강의 내용 정리/컴퓨터구조(13)
-
컴퓨터 구조(8), Branch Prediction
- 브랜치가 존재할 때 이를 어떻게 처리해줘야하는가 - 브랜치 예측을 잘 해야한다. - 브랜치 예측을 하기 위해서 아래의 세 정보가 필요하다. 1. 패치한 명령어가 브랜치인지 아닌지 확인 2. 조건에 따라 어디로 가는가 (branch direction): taken이나 not taken이냐 3. taken인 경우 어디로 가야하는가. - 타겟 어드레스가 프로그램 실행 과정에서 남아있게된다. 이를 이용해서 예측에 사용하자는 개념이다. 이를 BTB에 저장한다. - 타겟 어드레스를 저장하는 공간을 BTB를 부른다. 이는 메모리에 올리자니 접근 시간이 오래걸리고 레지스터에 넣자니 공간이 부족하다. 이에 따라 효율적으로 저장하기 위한 공간인 캐쉬에 저장한다. 그림 - 아래 박스(Cache of Target Addr..
2022.06.08 -
컴퓨터 구조 (7), Pipelining
Pipelining - 매 사이클마다 단계를 진행할 수 있도록 하는 파이프라인 버퍼가 위와같이 존재한다. - MIPS는 최대 5단계가 존재해 이를 효율적으로 사용하고자 했다. Pipeline Hazards - 파이프라인을 사용했을 때 빠르게 처리하다보니 결과값이 달라질 수 있는 이슈가 존재한다. - 크게 Structural hazards, Data hazards, controal hazards가 있다. - Structural hazards는 메모리를 나눠서 해결할 수 있다. - Data hazards는 stall을 통해 이를 해결할 수 있지만 성능이 많이 떨어진다. 대표적인 Data hazards로는 Read After Write 문제가 발생할 수 있다. 데이터 포워딩을 해 write에 대해 데이터가 쓰..
2022.05.23 -
컴퓨터 구조 (6), Single-cycle MIPS processor
Single-cycle MIPS processor - 모든 명령어가 한 사이클에서 패칭부터 동작을 다 하는 것을 의미해 single cycle이라고 한다. Instruction fetching 하버드 아키텍쳐: 명령어 메모리와 데이터를 로드하는 메모리를 분리해서 사용하는 것 - 분리되어있는 경우가 이해하기 쉽고, 구현하기도 쉽다. - 합쳐서 사용하는 경우에는 폰노이만 아키텍쳐이다. CPU는 무한히 반복되는 loop로 본다. R-type 명령어 - 어떤 instruction인지 알아야지 동작한다. - 오른쪽에 있는 내용이 register file이다. R-type 명령어가 들어왔을 때 동작 - PC값이 들어오면 명령에서 따라서 각각 레지스터별로 들어가고 RegWrite를 거친 뒤, ALU에서 특정 연산을 ..
2022.04.28 -
컴퓨터 구조 (5), Instruction Set Architecture 02
Instruction Set Architecture ISA는정확히 표현하고, 효율성이 있어야한다. 1. Instruction의 타입 1). Machine Instruction의 타입 (1) Opcode: 어떤 연산을 할건지 정의하는 파트 (2) Operands: 데이터 위치에 대해 알림 2) MIP Instruction의 타입 (1) Arithmetic and logic instructions (2) Data transfer instructions (3) Control transfer instructions 3) MIP Instruction format (1) R type - MIPS의 명령어는 32비트를 가지고 데이터 워드는 모두 같은 사이즈이다. - 두 개의 피연산자를 가지는 각각의 레지스터가 존재하..
2022.04.21 -
컴퓨터 구조 (3), Sequential Logic Circuits and Design
Sequential Logic Circuits and Design, 순차회로 1. 순차회로란? 과거의 input value를 메모리 형태로 가지고 있어서 해당 값과 현재 input value로 output을 결정하는 회로 1) Cross-Coupled Inverter - 이는 Q를 컨트롤해주는 메카니즘이 필요하다. 2) Storage Elements (1) Latches and Flip-Flops - 매우 빠르고 병렬도 접근 가능하다. - 1비트를 저장하기 위해 10개의 트렌지스터가 필요하기에 비싸다. (2) Static Ram(SRAM) - 래치와 플립플롭보단 느리지만 다른 것들과 비교했을 때 상대적으로 빠르다. - 1비트를 저장하기 위해 6개 이상의 트렌지스터가 필요하기에 상대적으로 비싸다. (3) ..
2022.03.22 -
컴퓨터 구조 (2) Combinational Logical Circuits and Design
Combinational Logical Circuits and Design 1. Building blocks of modern computers (1) Transistors - 컴퓨터는 매우 간단한 스트럭쳐인 트랜지스터가 매우 많이 들어가있다. ex) 2000년에 판매된 Intel's Pentium IV 마이크로 프로세서는 42milion MOS 트랜지스터가 있었는데 2016년에 판매된 i7은 3.2bilion MOS 트랜지스터가 사용됨 MOS 트랜지스터 - Conductors(Metal), Insulators(Oxide), Semiconductors로 구성되어있음 - 간단한 로직게이트를 MOS 트랜지스터를 사용해 구현할 수 있기에 유명함 - MOS 트랜지스터의 두 가지 유형 * n-type: 특정 vo..
2022.03.15