컴퓨터 구조 13

프로세서 (컴퓨터 구조)

프로세서란 cpu의 한 부분으로 명령을 해석하는 부분이다. 우선 프로세서의 성능을 알아보자. 프로세서의 성능은 CPU Time으로 알아볼 수 있는데, CPU Time = CPU Clocks Cycles * Clock Cycle Time 이다. 이때에 Clock cycle Time 은 Clock rate의 역수와 같다. 따라서 CPU Time = CPU Clocks Cycles / Clock rate 와 같다. clock rate = Clock Cycles / seconds 또한 이때의 CPU Clock Cycles = Instruction Count * Cycles Count Per Instruction 과 같다. 이때 줄여서 IC * CPI 로 나타낸다. 따라서 CPI = Clock Cycles / I..

컴퓨터 구조 2022.11.27

컴퓨터 구조 execute 과정 & delay

execute of r-format 위는 add instruction의 계산 과정을 나타낸 그림이다. 위의 진행 상황을 본다면 우선 instruction fetch, read register, alu operation, write data 순으로 실행된다. 그러면서 pc 의 값은 따로 병렬적으로 계산된다. 한편, 아래는 alu operation의 진리표이다. 위의 x는 전 포스트에서 언급하였듯이 don't care 이다. don't care 을 활용할 수 있는 이유는 alu op 가 11 이 없기 떄문이다. 이렇게 don't care 을 활용하면 시간이 빨라지는 이점이 있다. jump instruction의 경우는 위에 mux를 달아주면 된다. clock 의 cycle 은 combinationl logi..

컴퓨터 구조 2022.10.13

컴퓨터 구조

위의 그림에서 PC와 instruction memory 에는 같은 clock이 연결 되어있다. 따라서 PC에 값이 저장되기 위해서는 rising edge 에서만 저장된다. 하지만 , instruction memory에서는 오로지 값만 읽기 때문에, 값을 읽을 때에는 clock이 rising 이지 않아도 된다. 따라서 rising 일때마다 새로운 값이 PC에 저장되고 그 값에 해당하는 instruction을 읽는다. control 전 시간에 두가지 회로를 알아 보았다. 위 그림은 그 두가지 회로를 합치는 것이다. 위의 빨간색 동그라미는 입력값이 두개인데 출력값이 하나인 경우이다. 따라서 위의 부분들은 mux로 연결을 해주어야한다. 이때에 mux에 입력되는 signal에 따라서 입력값이 달라지는데, 이 mu..

컴퓨터 구조 2022.10.11

컴퓨터 구조

combinational logic : 값 저장을 하지 않는다. sequential logic : 값 저장이 가능하다. 우리가 사용하는 sequencial logic은 d-flipflop으로 write 와 clock 모두 1 일떄에 저장이 된다. 위와 같이 write 는 1이기 떄문에 clock rise 일 떄에 값이 써진다. instruction 이 저장될때에는 pc에 해당되는 메모리에 저장이 된다. 따라서 address는 해당 메모리의 주소를 판별할때에만 사용된다. 그리고 해당 위치에 저장된다. 위는 instruction을 저장할 때이고, 읽을 때에는 memRead = 1, memWrite = 0 으로 설정한다. 이렇게 되면 해당 address의 값을 읽을 수 있다. Register file sequ..

컴퓨터 구조 2022.10.04

컴구 translation and startup

위는 프로그램이 실행되는 과정을 나타낸 구조이다. 처음에는 프로그램이 compiler를 통해서 어셈블리 프로그램으로 바뀐다. 그 후 어셈블러를 통하여 object 로 바뀐다. 그 후 linker 를 통해서 executable 로 변환되고, loader를 통해서 메모리로 간다. object module 구성요소 : 위는 object module 을 간단하게 나타낸 것이다. 위에서 볼 수 있듯이 구성요소는 object file header/ text segment / data segment / roelocation information/ stmbol table 이 있다. text segment 는 명령어가 저장 되어 있는 주소와 instruction 이 쓰여 있다. data segment 는 data가 저장..

컴퓨터 구조 2022.09.30

컴퓨터 구조 (07)

jal 은 branch 로 link를 시킨 후에 return adress를 저장한다. 따라서 위와 같은 구조로 만들어 진다. 한편, 레지스터 들은 각각의 별명에 기능이 함축되어 있다. $zero 는 항상 0 이고, $2 - $3의 별명은 $v0 - $v1 으로 이 의미는 return 결과 같이거나, system call code 이다. $a0 - $a4 는 arguments 로 함수의 입력값등에 쓰인다. $t0 - $t7 는 tmp 로 연산을 할 때에 사용한다. $s0 - $s7 는 저장되는 임시 Register (서브루틴 호출시 저장된다) 함수 호출시 함수 시작부분에서 해당 Register를 Stack에 저장한다. $t8 - $t9 는 추가적인 레지스터 이다. $gp 는 global pointer, $..

컴퓨터 구조 2022.09.29

컴퓨터 구조(06)

mips 분기 명령어 = branch instructions 라고 한다. 종류로는 jr, j, ,jal, beq, bne 가 있는데 모두 Label 로 넘기는 기능을 하는 instructions 들이다. 따라서 우선 Label에 대해 알아보자 Label 이란 instrustions 에서 넘길때에 사용하는 것이다. 예시로는 Loop : add $2, $3, $4 가 있다. 이 명령어 처럼 앞에 영문자로 시작하고, 영문과 숫자로 이루어진 식별자를 Label로 사용한다. unconditional branch 이의 종류는 jr, j, jal 이 있다. jr은 jump register, 이는 지정한 register로 넘어가는 것 j는 jump 이는 지정한 Label 로 넘어가는 것이다. jal은 jump and ..

컴퓨터 구조 2022.09.23

컴퓨터 구조(05)

메모리에는 16진수로 저장 되는데, 이때에 메모리 한칸은 1byte = 8bit 이며 이가 표현 가능한 숫자의 수는 2^8이다. 이때에 2^8 = 16^2 와 같다 따라서 이는 16진수 두자리와 같다. 그리고 spim에 나타낼 때에는 4byte, word 단위로 나타낸다. 위의 명령어는 $4 레지스터의 값을 $5 + 8의 주소에 저장한다. 또한 위는 i format 으로 나타내는데, 더해지는 상수값을 16bit에 저장한다. mips assembler feature assembler diretives는 어셈블러 명령으로 자주 쓰는 .data / .text / .byte / .word 이다. .data 는 data segment의 시작을 알린다. .text는 text segment의 시작을 알린다. .byt..

컴퓨터 구조 2022.09.20

컴퓨터 구조 (04)

R format, I format 과 out of range representation of a program 의 순서는 이는 high - level language 을 assembly - language 로 그리고 이를 hardware representation으로 나타내는 순서이다. assembly - language는 우리가 앞서서 배운 add $t1, $t2, $t3 와 같운 것이다. 이제 assembly language 를 hardware represetation으로 나타내는 format 을 알아보자 1. r format 위는 r format의 구성요소이다. 레지스터의 값들과 shift하는 숫자는 5bit 볼 수있다. 그 이유는 레지스터가 전체 32개 이기때문에 register은 5bit 이면 ..

컴퓨터 구조 2022.09.16

컴퓨터 구조 (03)

정수 곱셈, 나눗셈 정수의 곱셈은 mult rs, rt 로 나타낸다. 이 rs와 rt는 register을 뜻한다. 이렇게 곱셈을 수행하게 되면 hi와 lo에 값이 나누어져 저장된다. 이때에 lo와 hi 에는 32bit 씩 저장이 되는데, lo에서의 값이 넘치면 hi로 넘어가서 저장된다. 이때 저장된 값들을 따로 레지스터로 옮겨 주어야하는데, 이때 쓰는 방법은 mflo r, mfhi r 가 있는데, mflo는 definition register로 lo의 값을 옮기는 것이고, mfhi는 definition register로 hi의 값을 옮기는 것이다. 정수 나눗셈 정수의 나눗셈은 div rs, rt / divu rs, ri 를 활용한다. 이때에 도 곱셈에서의 hi와 lo가 사용되는데, hi에는 rs를 rt ..

컴퓨터 구조 2022.09.16