본문 바로가기
728x90
반응형

분류 전체보기39

[논리회로] 조합 논리회로 (Combinational Logic Circuit) (1) 이번 글에서는 디지털 논리 회로 중, 조합 논리 회로에 대해 알아보자. 디지털 회로는 조합 논리회로(combinational logic circuit)와 순차 논리회로(sequential logic circuit)로 분류된다. 조합 회로는 현재의 입력 값에 의해서만 출력 값이 결정되는 회로를 말한다. 반면, 순차 회로는 현재의 입력 값과 바로 전의 입력 값에 의해 출력값이 결정되는 회로이다. 즉, 입력의 순서에 의존한다. 조합 회로에는 메모리가 없지만 순차 회로는 메모리를 가진다는 특징이 있다. 조합회로의 작성 규칙을 살펴보자. 이 규칙은 작은 조합회로의 element로부터 큰 조합회로를 어떻게 만드는지를 보여준다. 모든 circuit element가 combinational이다.회로의 모든 노드들이 그.. 2024. 6. 5.
[FPGA] FPGA Architectures(3): Configurable Logic Block (CLB) FPGA를 구성하는 기본요소는 Configurable Logic Block (CLB)이다. 이번 글에서는 CLB에 대해 자세히 알아보도록 한다. CLB는 기본적인 logic과 저장 기능을 제공한다. 이 기능을 제공하는 요소로 transistor나 processor를 생각할 수 있지만 그렇지 않다.transistor: very fine-grained하고 많은 수의 programmable interconnect가 필요하다. 이것은 FPGA의 area-inefficiency를 증가시킨다.processor: very coarse-grained하다. 작은 function을 구현하기 위해서 너무 많은 자원을 낭비해야 한다.이 두 가지 극단의 중간을 적절히 선택하는 것이 basic logic block에 적당하다. .. 2024. 6. 3.
[FPGA] FPGA Architectures(2): Programming Technologies FPGA의 가장 중요한 특징은 바로 reconfigurability/programmability이다. 이러한 특성은 fabrication 이후에도 pre-fabricated chip으로 바뀌는 것을 가능하게 하는 programming technology에 기인한다. 이번 글에서는 바로 reconfigurability를 가능하게 하는 programming technology에 대해 알아본다. "programming technology"는 FPGA의 내부 회로와 연결을 설정하거나 변경하는 데 사용되는 방법을 의미한다. reconfigurable architecture를 구현하기 위한 많은 programming technology들이 있지만 여기서는 그 중에서도 가장 잘 알려진 세 가지(static memor.. 2024. 6. 3.
[FPGA] FPGA Architectures(1): FPGA 지난 글에서는 programmable logic device (PLD)의 종류를 간단하게 살펴보았다. 이번 글에서부터는 본격적으로 FPGA에 대해 알아보도록 하자. FPGA는 1984년에 Ross Freeman에 의해 발명되어 1985년에 Xilinx 사에 의해 도입되었다. 현재에 이르러서는 디지털 회로를 구현하는 유명한 수단이 되었다. FPGA는 configurable logic block(CLB), programmable interconnects, I/O block (IOB)로 구성된다. ASIC에 대해 간단히 알아보자.ASIC (Application-Specific Integrated Circuit)ASIC은 digital systme을 구현하는 하나의 수단이다. 에너지 효율과 성능이 다른 수단과 .. 2024. 6. 3.
[FPGA] Programmable Logic Devices (PLD): PROM, PLA, PAL, CPLD, FPGA Programmable logic device(PLD)는 사용자가 내부 논리 회로의 구조를 변경할 수 있는 집적 회로이다. 초기에는 사전에 프로그래밍되어 회로를 변경할 수 없는 것이 일반적이었다. 하지만 PLD의 등장으로 사용자가 원하는 임의의 회로를 설계하고 기록해 동작시킬 수 있게 되었다. 역사적으로 다양한 종류의 PLD가 존재해왔다. 여기서는 그 중 PROM, PLA, PAL, CPLD, 그리고 자세히 앞으로 자세히 살펴볼 FPGA에 대해 간단히 살펴보도록 하자. 1. Simple PLD (SPLD)상대적으로 구조가 단순한 PROM, PLA, PAL, GAL 등을 SPLD라고 부른다.1) Programmable Read-Only Memory (PROM)PROM은 딱 한 번 새로운 내용을 기록할 수 .. 2024. 6. 3.
[컴퓨터구조] Pipelining(4): 데이터 해저드 (Data Hazard) 파이프라인을 실행하는 데에는 여러 장애가 존재한다. 앞서 파이프라이닝에 대해 설명하며 언급했다싶이 구조적 해저드, 데이터 해저드, 제어 해저드가 존재한다. [컴퓨터구조] Pipelining(1): 파이프라이닝이란 [컴퓨터구조] Pipelining(1): 파이프라이닝이란파이프라이닝(pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다.  RISC-V 명령어에서는 전통적으로 5단계가 걸린다.메모리에서 명령어 가져온다.명령어 해독하는 동시에 레지스터를turtle2.tistory.com 여기서는 데이터 해저드에 대해 살펴보도록 하겠다. 먼저 종속성이 여러 개 있는 프로그램을 살펴보자. 종속성은 파란색으로 표시했다. 마지막에서 네 명령어 모두 첫 번째 명령어의 레지스터 x2의 결과에 종속적이다. .. 2024. 6. 2.
[컴퓨터구조] Pipelining(3): 파이프라인 제어 앞서 단일 사이클 데이터패스에 제어를 추가했던 것처럼 파이프라인 데이터패스에도 제어를 추가해보자. 최대한 단일 사이클 데이터패스에서 사용했던 제어를 가지고 온다. 따라서 6개의 신호(RegWrite, ALUSrc, PCSrc, MemRead, MemWrite, MemtoReg)와 ALUOp에 대한 내용은 이전 글을 참고해도 좋다. [컴퓨터구조] Processor(3): 제어 유닛 (control unit) [컴퓨터구조] Processor(3): 제어 유닛 (control unit)앞의 글에서는 데이터패스를 간단히 구성해보았다. [컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위turtle2.ti.. 2024. 6. 1.
[컴퓨터구조] Pipelining(2): 파이프라인 데이터패스 이전 글에서는 단일 사이클을 가정하고 데이터 패스를 설계했다.[컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위해 RISC-V 명령어 종류 각각을 실행하는 데 필요한 주요 구성 요소들을 살펴본다.첫 번째 구성 요소는 instruction memory이다. 프로그램의 명령어를turtle2.tistory.com이번에는 파이프라인 단계를 고려해 설계해보자. 위 그림은 앞서 설계한 단일 사이클 데이터패스에 파이프라인 단계를 보여주고 있다. 각 부분은 명령어 실행 단계에 따라 이름이 붙여진다.IF: 명령어 인출ID: 명령어 해독 및 레지스터 파일 읽기EX: 실행 or 주소 계산MEM: 데이터 메모리 접근.. 2024. 6. 1.
[컴퓨터구조] Pipelining(1): 파이프라이닝이란 파이프라이닝(pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다.  RISC-V 명령어에서는 전통적으로 5단계가 걸린다.메모리에서 명령어 가져온다.명령어 해독하는 동시에 레지스터를 읽는다.연산 수행하거나 주소 계산데이터 메모리에 있는 피연산자에 접근결과값을 레지스터에 쓴다.4번 5번 과정의 경우 필수는 아니며 명령어에 따라서 실행되지 않을 수 있다. 단일 사이클과의 성능을 비교해보자. 단일 사이클 모델에서는 모든 명령어가 한 클럭 사이클 이내에 실행된다. 따라서 가장 느린 명령어를 수용할 수 있을 만큼 클럭 사이클이 충분히 길어야 한다. 가장 느린 명령어는 lw로 위의 표에서 800ps가 걸린다. 파이프라인 구현에서는 모든 단계가 한 클럭 사이클에 처리된다. 따라서 클럭 사이클은 가장 .. 2024. 6. 1.
[컴퓨터구조] Processor(3): 제어 유닛 (control unit) 앞의 글에서는 데이터패스를 간단히 구성해보았다. [컴퓨터구조] Processor(2): 데이터패스 만들기 [컴퓨터구조] Processor(2): 데이터패스 만들기먼저 데이터패스를 설계해보자. 이것을 시작하기 위해 RISC-V 명령어 종류 각각을 실행하는 데 필요한 주요 구성 요소들을 살펴본다.첫 번째 구성 요소는 instruction memory이다. 프로그램의 명령어를turtle2.tistory.com여기서는 만든 데이터패스에 단순한 제어 기능을 추가해보자. 1. ALU 제어먼저 RISC-V ALU를 제어하는 법을 살펴보자. 제어 입력 4개를 사용하는 4개의 조합이 정의되어 있다.ALU 제어선기능0000AND0001OR0010add0110subtract ALU는 명령어의 종류에 따라 이 네 가지 기능 .. 2024. 6. 1.
728x90
반응형