728x90 반응형 전체 글39 [컴퓨터구조] 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. [컴퓨터구조] Processor(1): 데이터패스와 RISC-V의 구현 RISC-V의 구현하기 위한 핵심 부분을 살펴보자.메모리 참조 명령어: lw, sw산술/논리 명령어: add, sub, and, or조건부 분기 명령어: beq이들을 살펴봄으로서 데이터패스와 제어 유닛을 설계하는 데 사용되는 핵심 원리를 이해할 수 있다. 나머지 명령어에 대한 구현 또한 거의 비슷하다. An Overview of the Implementation모든 명령어의 첫 두 단계는 다음과 같다.PC(program counter)를 프로그램이 저장되어 있는 메모리에 보내고, 메모리로부터 명령어를 가져온다.명령어의 필드에서 데이터를 불러올 레지스터를 읽는다.이 두 단계 이후의 행동들은 명령어 종류에 따라 다르다. 하지만 위에서 언급한 세 명령어 종류(메모리 참조 명령어, 산술/논리 명령어, 조건부 분.. 2024. 5. 29. [컴퓨터구조] Arithmetic for Computers(1): 덧셈과 뺄셈 컴퓨터는 손으로 계산할 때처럼, 오른쪽에서 왼쪽으로 한 비트 씩 더하고, 이때 생기는 올림수(carry)는 바로 왼쪽 자리로 보내 더한다. 컴퓨터에서의 뺄셈은 덧셈을 이용한다. 뺄 값의 부호를 바꾸어 더한다. 2의 보수법을 이용한다.연산 결과를 하드웨어에서 표현할 수 없을 때 오버플로가 발생한다. RISC-V 구조의 경우 32비트 워드로 표현할 수 없는 경우 (덧셈 결과 올림수 발생해 33비트가 될 경우) 오버플로가 발생한다. 어떤 경우에 오버플로가 발생할 수 있을까? 부호가 다른 피연산자를 더할 경우에는 오버플로가 발생하지 않는다. 계산 결과의 절대값이 두 피연산자 중 어느 하나보다 커질 수 없기 때문이다. 하지만 피연산자의 부호가 같을 경우 오버플로가 발생할 수 있다. 실제 오버플로가 발생했을 때 어.. 2024. 5. 29. [컴퓨터구조] Instructions, RISC-V(5): 프로시저(Procedure) 프로시저는 재사용이 가능하도록 프로그램을 구조화하는 방법 중 하나이다. 프로시저의 인수(parameter)는 프로시저에 값을 보내고 결과를 받아오는 일을 한다. 프로시저는 소프트웨어에서 추상화를 구현하는 방법이다. 프로그램이 프로시저를 실행하는 단계에 대해 살펴보자. 프로시저가 접근할 수 있는 곳에 인수를 넣는다.프로시저로 제어를 넘긴다.프로시저가 필요로 하는 메모리 자원을 얻는다.필요한 작업을 수행한다.호출한 프로그램이 접근할 수 있는 장소에 결과값을 넣는다.원래의 위치로 제어를 돌려준다.RISC-V 소프트웨어는 프로시저를 호출할 때 다음의 레지스터 할당 관례를 따른다.x10-x17: 전달할 인수와 결과값을 가지고 있는 인수 레지스터x1: 호출한 곳으로 되돌아가기 위한 복귀 주소를 가지고 있는 레지스터.. 2024. 5. 29. [컴퓨터구조] Instructions, RISC-V(4): 논리 연산 명령어, 조건부 분기 1. 논리 연산 명령어 (Logical Operations)워드 내 비트에 대한 연산을 수행한다.Logical operationsC operatorsRISC-V instructionsshift leftsll, sllishift right>>srl, srlishift right arithmetic>>sra, sraibit-by-bit AND&and, andibit-by-bit OR|or, oribit-by-bit XOR^xor, xoribit-by-bit NOT~xori 2. 조건부 분기 (Conditional Branch)조건부 분기는 값을 검사하고 검사 결과에 따라 프로그램 내의 새로운 주소로 제어를 넘기는 명령어이다. RISC-V 어셈블리 언어는 go to가 있는 if문과 비슷한 2개의 판단 명령어를.. 2024. 5. 29. [컴퓨터구조] Instructions, RISC-V(3): 명령어의 컴퓨터 내부 표현 명령어도 컴퓨터 내부에서는 높고 낮은 전기 신호의 연속으로 저장되므로 숫자로 표현할 수 있다. RISC-V의 명령어의 길이는 워드 길이인 32비트이다. 모든 RISC-V 명령어는 예외 없이 32비트이다. 명령어를 숫자로 나타내어 보자.add x9, x20, x2100000001010110100000010010110011 이렇게 명령어를 이진수의 필드로 구성하는 표현 형식을 명령어 형식(instruction format)이라고 하고, 이렇게 명령어를 숫자로 표현하는 것을 기계어(machine language)라고 한다. 이런 명령어들의 sequence를 machine code라고 한다. instruction format에 대해 더 알아보자. 1. RISC-V 명령어의 필드RISC-V 명령어의 각 필드에는.. 2024. 5. 29. [컴퓨터구조] Instructions, RISC-V(1): 산술, 적재, 저장 명령어 컴퓨터 언어에서 단어를 명령어(instruction)이라 하고, 그 어휘를 instruction set이라 한다. 앞으로의 글에서 사용할 명령어 집합은 RISC-V이다. RISC-V는 UC Berkeley에서 개발되었다. RISC-V는 RISC-V International이라는 기구에서 관리하는 개방형 구조를 갖는다. 즉, 특정 회사의 소유물이 아니다. 1. 하드웨어 연산기본적으로 모든 컴퓨터는 산술 연산이 가능해야 한다.RISC-V 산술 명령어는 반드시 한 종류의 연산만 지시하고, 항상 변수 3개를 갖는다. 한 예시를 살펴보자.add a, b, c add 연산자는 두 변수 b와 c를 더해 그 합을 a에 넣으라고 컴퓨터에 지시한다. 2. 피연산자 (operand)high-level language와는 다.. 2024. 5. 29. [Verilog] Procedures Always blocksfor synthesizing hardware, two types of always blocks are relevant:Combinational: always @(*) Clocked: always @(posedge clk)Combinational always block은 assign statements와 같다. procedural block 안의 문법은 바깥과 꽤 다르다. if-then, case 등을 사용할 수 있다. Blocking vs. Non-Blocking AssignmentContinuous assignments (assign x = y;). Can only be used when not inside a procedure ("always block").Procedural.. 2024. 5. 20. [데이터통신] LAN Bridge(1): Bridges 여러개의 LAN을 상호 연결해 확장한다. 이 때 bridge 혹은 router가 사용된다. router은 LAN과 WAN을 상호 연결할 수 있기에 더 일반적으로 사용되지만, 여기서는 bridge에 대해 살펴보도록 하겠다. bridge는 두 장치 사이에서 LANs을 연결하는 데에 가장 단순한 구조이다. bridge는 physical, link layers에서 동일한 프로토콜을 사용하는 LAN 사이에서 사용하기 위해 설계되었다. LAN의 범위를 무한히 늘리는 것 대신 bridge를 사용해 범위를 확장시키는 것에는 몇 가지 이유가 있다.Reliability:Performance:Security:Geography:1. Functions of Bridge서로 다른 두 LAN A, LAN B가 있다고 가정하자. B.. 2024. 5. 7. 이전 1 2 3 4 다음 728x90 반응형