CS/Computer Architecture 20

[컴퓨터구조] 5-2. Computer Instructions

이전 글에서 우리는 컴퓨터 구조는 3가지로 이루어져있고, 그 중 Instruction Codes에 대해서 다뤘다. 이번 글에서는 그러한 Instruction Codes를 통해서 컴퓨터가 명령어를 인식하게 되는 방법을 알아보려고 한다. 지금 계속 설명하고 있는 컴퓨터 구조는 Basic Computer라고 불리는 'Computer System Architecture'의 저자 M.Morris Mano가 설계한 16비트 컴퓨터이다. 이를 꼭 기억해두면서 진행한다. 컴퓨터의 3가지 기본 Instruction Format 우리는 이전 글에서, Instruction format이 어떠한 형식으로 되어있는 지를 알아보았다. 간단히 다시 설명해보면, 16비트 컴퓨터 기준으로 아래와 같은 형태를 띈다. 마지막 비트는 Ad..

[컴퓨터구조] 5-1. Instruction Codes

이번 글에서는 Intruction Codes에 대해서 알아봅니다. 컴퓨터는 구조는 크게 세 가지로 이루어져있습니다. 5장을 다루면서 계속 언급할 것이기에 꼭 알아둡시다. 내부 Registers Control Unit Instruction Set 이 세 가지를 나누어 설명합니다. 앞서 언급했듯이, 이번에는 Intruction set에 대해서 알아볼 것입니다. Instruction Codes Instuction code는 operation code(Opcode)와 address part로 나뉩니다. Operation code 이하 opcode로 칭하는 이것은 operation을 지정하는 것입니다. 컴퓨터에는 각 operation마다 opcode가 존재합니다. address part는 operation에 사..

[컴퓨터구조] 4-5. Shift μoperations

이번에는 μoperation 중에서 Shift μoperations에 대해서 알아보겠습니다. 기존에 프로그래밍 언어를 배우셨다면, shift 연산에 대해서는 용어 자체가 익숙할 수 있습니다. 어떤 수를 구성하는 비트들을 왼쪽 혹은 오른쪽으로 이동(shift)하는 연산을 의미합니다. Shift 연산은 Left Shift와 Right Shift로 나뉩니다. 각각에 대해 알아봅시다. Left Shift 비트를 왼쪽으로 옮기는 연산을 의미합니다. 오른쪽에 빈 자리에는 0으로 채워줍니다. 한 번의 Left Shift는 비트가 수의 표현 범위를 넘지 않는 선에서는 x2를 의미합니다. 아래의 예를 들어 설명합니다. 아래에는 signed magnitude 기법을 사용하여 설명합니다. 2진수로 표현된 0001는 10진수..

[컴퓨터구조] 4-4. Logic μoperations

이번에는 논리 마이크로 연산에 대해서 알아보겠습니다. Logic μoperation은 위의 표와 같이 총 16개의 연산으로 구성됩니다. 하지만 컴퓨터에는 AND, OR, XOR, NOT으로 딱 4가지 논리 연산으로만 구성됩니다. 이러한 4가지 연산으로 위의 표 16가지의 논리 마이크로 연산을 이끌어낼 수 있기에 가능합니다. 그럼 컴퓨터에서 4가지 논리 연산이 회로에서 어떻게 구성되어있는지 확인해봅시다. 보시는 것처럼, AND, OR, XOR, NOT 총 4개의 게이트와 하나의 4x1 MUX로 구성되어 있습니다. 이러한 회로는 아래의 논리표를 통해서 네가지 논리연산을 수행할 수 있게되는 것입니다.

[컴퓨터구조] 4-3. Arithmetic μoperations

4-1장에서 잠깐 다룬 μoperation에 대해서 조금 더 자세하게 설명한다. μoperation란? 이 책(Computer System Architecture | M. Morris Mano)에서는 μoperation을 4가지로 구분한다. 4-1장에서 다룬 register transfer 그리고 Arithmetic μoperation, Logic μoperation, Shift μoperation. 이번 글에서는 Arithmetic μoperation에 대해서 다룬다. 위에 보이는 것처럼 구분한다. (단, R1 - R2와 R1 + R2' + 1은 같은 의미이다.) Binary Adder 이러한 Arithmetic μoperation을 구현하기 위해서 Binary Adder가 존재한다. 이 가산기는 n-..

[컴퓨터구조] 4-2. Bus and Memory Transfer

오늘은 버스에 대한 개념과, 버스를 설계하는 대표적인 두 가지 방법에 대해 설명합니다. Bus 우리가 아는 버스와 비슷한 개념입니다. 우리가 버스를 타고 A에서 B로 이동하는 것처럼, 여기서 사용되는 Bus는 컴퓨터 내부에 있는 component들 사이에서 데이터를 전송하는 의사소통 시스템입니다. 실생활에서 버스의 노선을 굉장히 잘 잡는 것이 중요합니다. 이와 같이 이번에 배울 버스도 설계를 잘하는 것이 중요합니다. 그래야 데이터 사이의 충돌이 발생하지 않기 때문입니다. 따라서 우리는 Bus Master(bus에 의해서 전송되는 데이터)가 하나만 되도록 설계하는 것이 중요합니다. Common Bus System 가장 기본적인 버스를 설계하는 2가지 방법에 대해서 알아봅시다. 1. Bus System wi..

[컴퓨터구조] 4-1. Register Transfer

디지털 컴퓨터 시스템은 register, decoder, arithmetic element, control logic 등과 같은 component들로 이루어진 여러 종류의 디지털 모듈들로 구성됩니다. 디지털 모듈이란 register들과 그 register 속 저장된 데이터에 대한 operation들입니다. 우리는 이러한 operation을 통해서 레지스터에 저장된 값을 shiftm count, clear, load와 같은 작업을 통해 갱신합니다. 이러한 operation을 μoperation이라고 합니다. 레지스터 레지스터는 데이터를 저장하는 역할을 합니다. 여기서는 컴퓨터에서 사용되는 기본 레지스터에 대해서 설명합니다. 1. MAR(Memoty Address Register) : 데이터의 주소를 기억하..

[컴퓨터구조] 3-3. Error Detection Codes

비트의 데이터를 전송할 때, 컴퓨터에서 비트 전송의 에러를 확인해볼 필요가 있다. 항상 비트가 잘 갔는지는 확실하지 않기 때문이다!(그렇다고 하자.) 그렇다면 우리는 어떠한 방식으로 비트의 전송이 정확히 이루어졌는지 판단할 수 있을까?? 여기서는 Parity bit를 사용한다. 컴퓨터는 이진수로 이루어져있기 때문에, 데이터 또한 이진수로 주고 받는다. 이 때, Parity bit는 전송되는 1의 개수가 홀수 혹은 짝수가 되도록 만들어주는 비트이다. 만약 우리가 1의 개수를 짝수로 만들고 싶다면 even parity bit를 홀수 개로 만들어주고 싶다면 odd parity bit가 되겠다. 만약, 우리가 odd Parity bit로 설정했고, 1101 이라는 데이터를 전송한다고 한다면 1의 개수가 3개 즉..

[컴퓨터구조] 3-2. Floating-Point Representation

Floating-Point Representation, 부동 소수좀 표현에 대해서 알아보자. 교수님이 중요하게 다루지는 않았지만, 수업을 진행했던 내용이므로 정리해본다. 부동 소수점 표현 만약 우리가 엄청 작은 수의 단위나 엄청 큰 수는 어떻게 표시할까?? 만약 20억 혹은 그것보다 더 큰 수를 계산하기 위해서 그에 맞는 2진수의 자리수만큼 비트를 사용하기에는 너무 자원이 낭비된다. 따라서 컴퓨터는 이러한 수들을 보다 효율적으로 저장하기 위해 고안되었다. 부동 소수점을 표시하기 위해서는 총 3개의 부분이 존재한다. sign, mantisa, exponent. 우리는 이 세가지를 예로 들어 설명하겠다. 편의를 위해 작은 수로 진행하는 점 양해 부탁한다. 우리가 -24.25라는 수를 부동 소수점 표현 방식으..

[컴퓨터구조] 3-1. Complements

1, 2장은 교수님께서 논리회로 때 설명한거라고 하고 넘어가주셨다. 난 안들었는데.. 강의자료라도 첨부해주시지 첨부도 안해주셨다. 그러고 우리보고 알아서 1, 2장을 공부하란다 ㅠㅠ 그래서 3장부터 시작합니다!! 컴퓨터는 2진수를 사용한다. 또한 컴퓨터에는 add 즉, 더하기 기능만 존재한다. 그런데 어떻게 컴퓨터는 사칙연산을 모두 진행할 수 있을까?? 우리는 보수의 개념에 대해서 배우고, 컴퓨터 내에서 뺄셈은 어떻게 진행되는 지 알아본다. 또한 이러한 연산에서 발생하는 overflow Error에 대해서 다룬다. Complements 앞서 말했듯이 컴퓨터는 0과 1로 이루어진 세계이다. 우리는 기본적으로, 10진법 수를 2진수로 나타낼 수 있다. 만약 우리에게 10+2의 이진수 결과를 나타내라고 한다면..