본문 바로가기
728x90
반응형

Computer37

[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.
[컴퓨터구조] Processor(2): 데이터패스 만들기 먼저 데이터패스를 설계해보자. 이것을 시작하기 위해 RISC-V 명령어 종류 각각을 실행하는 데 필요한 주요 구성 요소들을 살펴본다.첫 번째 구성 요소는 instruction memory이다. 프로그램의 명령어를 저장하고, 주소가 주어지면 해당 명령어를 보내준다. 이 메모리는 읽기 접근만 제공하면 되므로 conbinational circuit으로 취급된다.다음으로는 program counter(PC)를 살펴보자. PC는 현재 명령어의 주소를 가지고 있는 레지스터이다. 매 클럭 사이클 끝에 쓰기가 행해지는 32비트 레지스터이므로 쓰기 제어 신호는 필요하지 않다.다음으로 PC를 다음 명령어 주소로 증가시키는 덧셈기가 필요하다. ALU를 이용해 쉽게 만들 수 있다. ALU가 항상 덧셈을 하도록 제어선을 연결한.. 2024. 5. 30.
[컴퓨터구조] 클럭킹 방법론(clocking methodology), 에지 구동 클럭킹 클럭킹 방법론은 신호를 언제 읽고 언제 쓸 수 있는지를 정의한다. 클럭킹 방법론은 예측 가능성을 보장하기 위해 고안되었다. 에지 구동 클럭킹 (Edge-triggered clocking)sequential 논리 소자에 저장된 값은 클럭 에지에서만 바꿀 수 있음을 의미한다. 클럭 에지는 낮은 값에서 높은값으로, 혹은 높은 값에서 낮은 값으로의 변이를 의미한다. state element만이 데이터 값을 저장할 수 있으므로, 모든 combinational 회로는 state element에서 입력을 받고 state element로 출력을 내보낸다.  위의 그림은 combinational 회로를 둘러 싸고 있는 2개의 state element를 보여준다. 앞으로의 글에서 모든 state element는 상향 에지.. 2024. 5. 30.
728x90
반응형