컴퓨터 구조(13)
-
[컴퓨터 구조][MIPS] J-타입(Jump-type) 명령어
I-타입(Immediate-type) 명령어 op Address 6 bit 26 bit op(opcode) 명령어의 종류를 알 수 있게 해 준다. Address 점프할 주소 값 jump 지정된 주소값으로 이동한다. j L1 주소 값 L1으로 이동한다. ↓ PC = L1 뭔가 이상하지 않은가? 이전 부터 우리는 명령어의 길이가 32bit라고 알아왔었다. 그러나 L1의 값이 26bit이므로 PC값에 들어가기엔 부적절하다. 그렇다면 어떻게 26bit를 32bit에 저장할 수 있는 것일까? addressing 명령어의 크기는 4byte이다. 명령어의 시작 주소가 0이라면, 다음 주소는 4가 된다. 그렇다는 것은 명령어의 LSB 0번째와 1번쨰 bit는 언제나 0이라는 것을 알 수 있다. 즉 명령어는 xxxxxx..
2020.06.12 -
[컴퓨터 구조][MIPS] I-타입(Immediate-type) 명령어
I-타입(Immediate-type) 명령어 op rs rt 상수(constant or address) 6 bit 5 bit 5 bit 16 bit op(opcode) 명령어의 종류를 알 수 있게 해준다. rs(register source) 연산을 위해 사용되는 첫 번째 레지스터 rt(register target) 연산의 결과값이 저장되는 레지스터 R-type과는 다르게 I-type은 rt에 저장이 된다. 상수(constant or address) constant -2^15 ~ 2^15 - 1 까지의 수 address rs에 추가될 offset c언어에서의 배열 번호를 말한다. c code a[5] MIPS $s0 + 20 하나의 값이 4byte이므로 4n을 더해준다. 상수 연산 addi $s0, $s1..
2020.06.12 -
[컴퓨터 구조][MIPS] R-타입(Register-type) 명령어
R-타입(Register-type) 명령어 op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit op(opcode) 명령어의 종류를 알 수 있게 해준다. rs(register source) 연산을 위해 사용되는 첫 번째 레지스터 rt(register target) 연산을 위해 사용되는 두 번째 레지스터 rd(register direction) 연산의 결과값이 저장되는 레지스터 shamt(shift amout) 시프트 연산에 사용되는 비트 시프트 연산이 사용되지 않는다면, 0으로 고정된다. funct(function code) opcode로 명령어의 종류를 다 담기에는 부족해서 만든 추가적인 코드 opcode가 큰 분류를 지정한다면, funct에서는 작..
2020.06.12 -
[컴퓨터 구조] MIPS(Microprocessor without Interlocked Pipelined Stages)
[컴퓨터 구조] ISA(Instruction Set Architecture) ISA(Instruction Set Architecture) 컴퓨터 언어에서 명령어(Instruction) 는 단어를 명령어 집합(Instruction set)은 어휘라고 말할 수 있다. 그리고 이러한 명령어 집합을 들을 모아 문장을 만든 것이 ISA(Ins.. jyukki.tistory.com 이전 포스트를 통해 ISA가 무엇인지알았다면, MIPS를 통해 실제 ISA가 어떤 구조로 되어 있는지 알아보도록 하겠다. MIPS가 개발되기 전에 사람들은 이러한 생각을 하였다. "성능을 최대화하고, 비용을 최소화하면서, 하드웨어 및 컴파일러를 쉽게 구축 할 수있는 언어를 찾습니다." MIPS는 개발자들의 이러한 needs를 충족시키기 ..
2020.06.10 -
[컴퓨터 구조] ISA(Instruction Set Architecture)
ISA(Instruction Set Architecture) 컴퓨터 언어에서 명령어(Instruction) 는 단어를 명령어 집합(Instruction set)은 어휘라고 말할 수 있다. 그리고 이러한 명령어 집합을 들을 모아 문장을 만든 것이 ISA(Instruction Set Architecture) 이다. ISA의 분류 가변길이(CISC(Complex Instruction Set Computer)) 명령어의 길이가 일정치 않음 ex) Intel, x-86 고정길이(RISC(Reduced Instruction Set Computer)) 명령어의 길이가 일정 ex) MIPS, ARM 이러한 ISA들을 통해 컴퓨터에게 명령을 내리기 위해서는 명령어의 종류가 지정되어 있어야 한다. ISA에 있는 명령어 종..
2020.06.10 -
[컴퓨터 구조] 컴퓨터 구조
응용프로그램들은 복잡한 코드들로 구성되어있다. but 하드웨어는 단순한 것만 실행할 수 있다. 그러므로 이러한 응용프로그램들을 실행하기 위해서는 번역 or 해독하는 작업이 필요하다.(추상화) 기계는 단순하게 on(1), off(0) 로만 이루어져 있다.이것을 이진수 or bit 라고 부른다. 이러한 on, off의 명령들로 이루어진 것을 우리는 명령어라고 한다. 명령어는 bit들의 집합으로 이것을 사람이 읽고, 명령을 내리기에는 힘들다. 그래서 이것들을 기호로 나타내기 시작했다. 고급 언어(c, c++, java) A = A + B ↓ 컴파일러 고급언어를 어셈블리어로 컴파일 ↓ 어셈블리언어 ADD A, B ↓ 어셈블러 기호를 이진수로 번역 ↓ 기계어 1000110010100000 컴퓨터의 구성요소 I/O..
2020.06.10