전공 수업 CS/Computer Architecture

    [컴퓨터구조] 모듈러 연산

    [컴퓨터구조] 모듈러 연산

    캐시 기억 장치의 설계를 공부하던 중 직접 사상에서 모듈러 연산 개념이 나왔다. 이 개념에 대해 알아보고자 글을 작성한다. Goal 모듈로 연산에 대한 이해 모듈로 덧셈, 뺄셈, 곱셈 연산에 대한 이해 모듈로 연산(Modulo Operation)이란? 어떤 한 숫자를 다른 숫자로 나눈 나머지를 구하는 연산으로, 나머지 연산(mod)이라고 한다. 정수론에서 모듈라 연산(modular arithmetic)이란, 정수의 합과 곱을 어떤 주어진 수의 나머지에 대하여 정의하는 방법이다. *나눗셈 정리(division theorem) 더보기 두 정수로부터 몫과 나머지를 얻는 연산 나머지 있는 나눗셈(division with remainders) 또는 유클리드 나눗셈(Euclidean division)이라고도 한다...

    [컴퓨터구조] 주기억장치 DRAM | DRAM의 동작원리

    [컴퓨터구조] 주기억장치 DRAM | DRAM의 동작원리

    1. DRAM의 구성요소 DRAM은 한개의 트랜지스터와 1개의 캐패시터로 구성됩니다. 트랜지스터는 전류의 흐름과 차단을 조절하는 소자이며(일종의 스위치), 캐피시터는 전하를 저장하는 소자입니다.(일종의 배터리) 1.1. Transistor(MOSFET) 트랜지스터는 gate, source, drain 3개의 연결지점을 가지는데 source와 drain중 전위가 높은 곳이 drain이 되고, 낮은 곳이 source가 됩니다. 즉, 전류는 전위가 높은 곳에서 낮은 곳으로 흐르므로 drain에서 source로 전류가 흐르게 됩니다. 또한 source와 drain의 위치가 전위의 상대적인 차이로 고정되지않고 바뀌므로, DRAM에서 전류는 양방향으로 흐를 수 있습니다. 이때 흐르는 전류의 양은 gate와 sour..

    [컴퓨터 구조] 카르노맵

    [컴퓨터 구조] 카르노맵

    식 간소화 (Simplification) 예를 들어 f=a+ad'+abc+ac'ef+ahj라는 식이 있다고 해봅시다. 이걸 그대로 회로로 만들려면 너무 힘들겠죠? 정리하면 간단하게 f=a로 만들 수 있으니, 식을 간소화하자는 것입니다. 식을 간소화하는 방법에는 여러 가지가 있습니다. 항을 줄이는 방법, 상수를 없애는 방법, 항을 추가하는 방법 등 다양합니다. 이때에는 불 대수가 활용되는데, 주로 흡수 법칙, 합의의 정리 등을 활용하면 쉽게 식을 간소화할 수 있습니다. 항을 추가하는 방법이 식 간소화 방법이라는 것에 놀라실 수도 있는데, 이 역시 합의의 정리를 응용한 것입니다. f=ab+b'd'+ac'd'이라는 식이 있다면, ab+b'd'=ab+b'd'+ad'이므로 +ad'를 추가할 수 있고 ad'+ac'..

    [컴퓨터 구조] 부동 소수점 & 바이어스 수 biased number 127

    부호부 1bit 지수부 8bit 가수부 나머지bit 1. 먼저 표현하고자 하는 소수(실수) 를 2진수로 변환한 후 소수점 앞의 숫자가 2보다 작아지도록 소수점을 이동시키고 소수점 이동(부동소수점 : 부유하는 소수점 floating point)에 따른 2의 제곱승(-->지수부)을 곱해주어 아래와 같이 만든다 예) 1.001101 * 2^6 (

    [컴퓨터 구조] 1의 보수와 2의 보수 표현법 이해

    [컴퓨터 구조] 1의 보수와 2의 보수 표현법 이해

    ⦁ 2진수의 수 표현법 아마 이 글을 보시는 대부분은 2진수가 무엇인지는 모두 알고 있을 겁니다. 예로들어 4bit에서 수를 표현한다면 이럴테죠. 0000(2) = 0 0001(2) = 1 0010(2) = 2 0011(2) = 3 0100(2) = 4 ⋮ 1110(2) = 14 1111(2) = 15 여기서 한 가지 가장 큰 문제를 찾으라면 무엇이 있을까요? 우리가 10진수를 2진수로 해석하여 수를 표현하는데 아무런 문제가 없어보이지만, 조금만 생각해보면 우리가 쓰는 수 체계는 자연수(또는 양의 정수)만 존재하는 것이 아니죠. 엄연히 음의 정수도 수 체계에 포함되어있죠. 즉, 위 방식에서 가장 큰 문제라면 바로 음수를 표현 할 방법이 없다는 것입니다. 그러면 어떻게 음수를 표현할까? 이에 대한 고민을 ..

    [컴퓨터 구조] 실수 표현 - 실수 표현 | 단일 정밀도 부동 소수점 | 지수, 바이어스 값 |IEEE 754

    공부하다가 이해가 안 가서 한참 들여다본 단일 정밀도 부동소수점... 정규화된 표현 지수 - 바이어스 값 부분이다. 왜 바이어스 값을 이용하며, 바이어스 값이 왜 127인지 컴퓨터 구조 전공 서적만으로는 이해가 되지 않아 아래 글을 보며 차근차근 이해했다. 또 찾아보게 될 수 있으니 정리해두고자 한다. ============================================================= float의 경우는 지수의 비트수가 8비트입니다. 그렇다면 표현 가능한 수는 256가지 이지요 (0 ~ 255) ieee754 표현법을 아신다니 간략히 말씀 드리지요 5.625를 실수로 표현하면 이진수로 바꾸니까 101.101 이 됩니다. 이걸 1.xxx 형식으로 정규화 하니까 +1.01101 *..

    [컴퓨터 구조] 정수 표현 | (-0)의 2의 보수가 존재하지 않는 이유

    수업 시간에 배운 내용을 복습하다가 이해 안 가고 헷갈리는 부분이 발생했다. 나중을 위해 이에 대해 정리하고자 한다. 우선 2의 보수를 사용하는 이유는 0 때문인데 현실세계에서의 0은 부호가 없음 그러나 컴퓨터에서는 음수와 양수를 나타내기 위한 방법중 하나로 제일 왼쪽비트에 0이면 양수 1이면 음수 이렇게 나타내는 방법이 있는데 이런식으로 나타낼경우 -0과 +0이 공존하는 문제가 발생한다. 하지만 2의 보수의 경우는 0이 하나만 존재한다. 8bit의 간단한 계산으로 증명해보겠다. 우선 1의보수는 +0을 나타내는 00000000과 -0을 나타내는 11111111이 이렇게 두가지가 있다. 2의 보수의 경우는 00000000에 2의 보수를 취하면 11111111(0을 1로 뒤집고) + 1을 해주면 100000..