computer architecture

    [컴퓨터 구조] CISC vs RISC

    1. ARM vs Intel ARM CPU는 스마트폰, 임베디드, IoT 기기에서 많이 사용 굉장히 전력 효율이 좋기에 베터리를 사용하는 기기에서 많이 사용 Intel CPU는 노트북, 데스크탑에서 많이 사용 베터리 효율이 ARM보다는 떨어지기 때문에 노트북, 데스크탑에서 많이 사용 1.1 OP Code는 CPU에서 명령어를 제공하는 것 이 명령어를 정의하는 것은 크게 CISC 방식과 RISC 방식 2가지 전략으로 나뉘게 된다. ARM CPU와 Intel CPU는 OP Code도 다르고 명령어를 정의하는 것도 다르다. ARM CPU는 RISC 방식을 따르고 있으며, Intel CPU는 CISC 방식을 따르고 있다. 2. CISC(Complex Instruction Set Computer) 하나의 명령어 ..

    [컴퓨터 구조] 파이프라인

    1. 파이프라인 하나의 작업에 필요한 일을 세부적으로 나누어서 동시에 다른 세부작업을 실행하는 방법 CPU의 단계를 2가지로 나누어보자. Fetch Stage(Instruction Fetch/Decode) Execution Stage(Instruction Execution) CPU의 단계를 4가지로 나누어보자. 명령어 인출(IF: Instruction Fecch) 명령어 해독(ID: Instruction Decode) 인출된 명령어 해석 오퍼랜드 인출(OF: Operand Fetch) 메모리에서 데이터 인출 명령어 실행(EX: Execute) 최근 CPU는 파이프라인이 굉장히 길다. 16단계 정도이며, 단계를 계속 나누는 이유는? 세부적으로 단계를 나누면 나눌수록 속도가 빨라진다. CPU의 단계를 나눈 ..

    [컴퓨터 구조] 컴퓨터의 CPU 기본 구조

    1. CPU 기본 구조 CPU에는 레지스터(Register)라는 저장공간이 있음 역할: 빠른 실행을 위해 PC(Program Counter): 다음 실행할 명령어 주소를 가리키는 레지스터 IR(Instruction Register): 가장 최근에 인출한 명령어 보관 레지스터 누산기(ACC, Accumulator): 데이터 일시 보관 레지스터 MAR(Memory Address Register): CPU가 메모리 참조를 위해 보관하는 데이터 주소를 가진 레지스터 MBR(Memort Buffer Register): CPU가 메모리로부터 읽거나, 저장할 데이터 자체를 보관하는 레지스터 2. CPU 기본 실행 구조(4가지) 2.1. Instruction Fetch 실행할 명령어를 메모리에서 읽어 CPU로 가져온다..

    [컴퓨터 구조] Instruction Set이란?

    1. Instruction Set CPU 에 Instruction Set이 존재 Software = Code + Data Software Engineer: Code를 작성하는 사람 Machine Language CPU는 Instruction Code, 즉 opcode를 만들어놓고, 제공 컴파일 컴파일러는 프로그램이 Code를 기계어로 바꾸는 것이다. 우리가 사용하는 모든 고급 언어는 결과적으로 CPU한테 알려줄 때 opcode를 사용해서 변환을 해야 한다. CPU 같은 경우에는 Operation Instruction Set을 정의하고 어떤 Operation Code를 가지는 지 알려주고 Assembly Language는 Operation Code를 대응할 수 있는 간단한 약자로 만들어놓고 실제로 Code..

    [컴퓨터 구조] Program Counter(PC)란?

    1. PC(Program Counter) 간단하게 클럭이 튕길 때마다 1씩 증가하는 기능을 하는 register CPU에 특별한 명령을 통해 PC값을 바꿀 수 있음 바뀌어지면 바뀌어진 값에서 1씩 증가 1.1. 16-bit counter 1씩 증가하는 조합논리회로 1.2. PC = Accumulator + 16-bit counter + control panel 1.3. 여러 숫자를 더하고 싶을 경우(예) 1.4. Automation 0000h 주소부터 데이터가 저장되어 있음 h 는 Hex(16진수)를 의미 네 수를 더하고, 두 수를 더한다고 가정 0000h부터 네 수를 하나씩 할당한다. 첫번째 네 수를 더한 값을 저장 후 두번째 시작할 때 clear 한다음에 0005h부터 다시 시작한다. 그리고 두번째 ..

    [컴퓨터 구조] Accumulator란?

    1. Accumulator(가산기) 덧셈을 하는 기기 플립플롭(flip-flop) 구조에서 clear 라는 버튼 추가 data가 1이면 output이 1 하지만, 만약 clear가 1이면 output은 무조건 0 = 즉, clear가 1이면 data가 삭제 8-bit adder와 8-bit latch 로 구성 전체 흐름 최종적으로 X + Y를 만들어야 함 먼저 data-in에 X값을 넣어주면 반대편 data-in은 0이므로 8-bit adder를 통해 X + 0을 통해 data-out이 X가 된다. data-out된 X는 다시 8-bit latch의 data-in으로 들어가 여기서 add가 눌러져 저장되었다가 data-out으로 X가 됨 그리고 다시 8-bit adder로 들어간다. 여기서 8-bit a..

    [컴퓨터 구조] RAM이란?

    1. RAM(Random Access Memory) = 온전한 8 bit latch회로(=Memory) 2. 8 × 1 RAM(=RAM) 8개 bit 중 1개의 특정 bit를 쓰고 읽을 수 있는 메모리 특징 Memory: 데이터를 저장 가능 Read/Write: 특정 공간에 새로운 데이터 저장, 읽기 가능 RAM 지정을 통해 특정 공간 값 접근 가능 일부 메모리는 순차접근만 가능 3. RAM array RAM 을 여러 개를 추가했다는 의미 3.1. 8 × 2 RAM array 8 × 1 RAM은 하나의 bit만 쓰고 읽을 수 있음 8 × 1 RAM을 두 개 연결하면 8 * 2 RAM array가 됨 총 16개 중 address가 8 × 1, 8 × 1로 동시에 가리키기 때문에 두 개의 data를 한 번에..

    [컴퓨터 구조] latch 란?

    1. 1 bit latch = Level-triggered D-type filp-flop Hold That Bit를 Write라고 표시 1 bit를 일시적으로 저장할 수 있는 메모리 Data를 넣을 때 Write도 1이어야 함 ) 2. 8 bit latch Write가 1일 때 8 bit data inputs이 8 bit data outputs에 저장 Write가 0이면 8 bit data outputs 값이 유지 3. 8-to-1 selector 8개의 1 bit latch 중에서 하나의 데이터 출력 신호를 선택 가능 Address 데이터를 저장하면 어느 위치에 저장했는지 저장한 데이터 중 어떤 데이터를 가져오고 싶으면 어느 위치에 있는 데이터를 읽어올 지 선택해주어야 함. selector 데이터를 변..