본문 바로가기

컴퓨터구성

메모리 - RAM, ROM 메모리는 위 그림과 같은 형태를 보인다. 디코더가 여러 개의 칸 중 하나로 연결한다. 32bit 컴퓨터의 기준이니 64bit에서는 32자리에 64가 들어간다 생각하면 된다. 그런데 각 word마다 주소가 있는 건 아니고 사실 byte마다 있다. 즉, 32bit 컴퓨터 기준으로 1 word = 32bit = 4byte이다. 따라서 한 칸에 4개의 주소가 있다. RAM(Random Access Memory)어떤 위치에 있든 상관없이 찾는 시간이 똑같으며 READ와 WRITE 모두 가능하다.그림을 보면 쉽게 이해할 수 있다. ROM(Read Only Memory)기본적으로 READ밖에 안된다. 근데 요즘은 기술이 발전해서 WRITE도 된다고 한다. 물론 걸리는 시간이 차이가 심하긴 하다. 일반적으로 ROM에는.. 더보기
집적 회로(IC) - register, counter 앞서 플립 플롭을 1개의 bit를 기억하는 장치라고 했다. 이런 플립 플롭을 여러 개 연결해서 n개의 bit를 기억하게 만든 장치를 레지스터(register)라고 한다. 여러 개의 플립 플롭들이 연결되어 있으니 기능들을 조금 넣어 응용하고 싶다. 즉, 복잡해지기 시작한다.. 우선 로드기능부터 넣어보도록 하겠다. load값이 1이라면 외부에서 값이 들어오고, 0이라면 원래 있던 값을 그대로 유지한다. 참고로 이런 기능을 parallel load라 한다. 우선 기본적인 회로도는 위 그림과 같다. 그리기 정말 귀찮았다.. 자 그럼 load가 1일때를 살펴보자. 우선 노란색으로 선택되어 있는 선들이 1을 가지는 선들이다. 이에 유의해가며 보면 된다. input값이 1이면 출력도 1로 됨을 알 수 있다. 이번엔 .. 더보기
집적 회로(IC) - MUX 지난 번에 디코더에 대해 알아보았다. 못 쓴 내용이 조금 있어서 추가적으로 조금만 기술해보도록 하겠다. 디코더엔 input값중에 enable도 있는데 이 값이 0이라면 input에 무관하게 모두 0을 출력한다. 따라서 이 enable을 이용해서 디코더를 확장할 수 있다. 여러 디코더를 연결한 후 하나를 제외한 나머지 enable들을 0으로 만들어주면 output이 단 1개만 될 수 있다. 즉, 간단한 예를 들어 2x4디코더로 4x16디코더를 만드려면 2x4디코더가 5개 필요하다.출력값이 16개니 당연히 4개는 필요로 하고, 4개의 각 enable값을 판단해줄 디코더 1개까지 합쳐 총 5개이다. 역시 말로 설명하려니 어렵다.. 뭐 대충 위와 같은 그림으로 표현할 수 있을 것이다. 만약 enable이 0이라.. 더보기
순서 회로 설계, 디코더 지난 글 마지막 부분에 나왔던 edge-triggering방식은 비용이 너무 많이 들어간다. 그래서 master-slave 타입을 고안해냈다. 위 그림과 같이 2개의 플립플롭을 두고 Clock을 앞부분은 그대로 뒷부분은 Not으로 연결한다. 이 때 앞부분을 master, 뒷부분을 slave라 하며 edge-triggering과 같은 효과를 낸다.(master는 전달되고, slave는 전달 안되는 식이기 때문이다.) 단 edge-triggering보다 안정성이 조금 떨어진다. edge-triggering은 순간적으로 변하는 반면 master-slave는 계속 작동하고 있기 때문에 잘못된 신호가 들어올수도 있기 때문이다. 여기표(excitation table)여기라는 단어를 처음 본 것 같다.. 그냥 exc.. 더보기
조합 회로, 순서 회로 컴퓨터의 논리 회로는 조합 회로와 순서 회로로 구분할 수 있다. 종류와 함께 하나씩 살펴보도록 하겠다. 1. 조합 회로(Combinational Circuits) - input에 따라 output이 정해진다. - 시간이 아무리 가도 값의 변화가 없다. - 진리표로 설명 가능하다. 즉, 여태까지 한 회로들이 모두 조합 회로임을 알 수 있다. 조합 회로의 설계 절차는 다음과 같다. 1) 문제 제시 2) input과 output을 따져본다. 3) 진리표를 세운다. 4) 식을 간소화시킨다. 5) 회로를 그린다. 반가산기(Half Adder) 두 비트의 산술적인 덧셈을 수행하는 회로이다. 위 절차에 따라서 설계해보면 다음과 같다. 1) 반가산기 설계 2) input : x, y output : c(carry), .. 더보기
식의 간소화 - 카르노맵 동일한 기능을 한다면 당연히 비용이 저렴한, 간단한 식을 원할 것이다. 따라서 다음과 같은 2가지 방법을 이용해서 식을 간소화 시켜야 한다.1. 부울 대수의 성질 이용2. 카르노 맵 우선 부울 대수의 성질을 이용해보자. 기본적으로는 다음과 같다.그냥 넘어가기엔 좀 그러니 간단한 예제를 몇가지 들어보도록 하겠다. 1) ab + b'c + ac = ab + b'c + a(b+b')c = ab + b'c + abc + ab'c = ab(1 + c) + b'c(1 + a) = ab + b'c 2) (a' + b)(a' + c)(c + d)(b + d) = (a' + bc)(d + bc) = bc + a'd등과 같이 식을 간소화시킬 수 있다. 가끔씩 product-of-sum을 sum-of-product로 바꾸라.. 더보기
기본적인 Logic gates 가장 기본적인 Logic gate들에 대해 알아보도록 하겠다. 1. AND수식으로는 X = AB 라고 사용하며 둘 다 1일때만 1이다. 2. OR수식으로는 X = A + B이며 둘 중 하나라도 1이라면 1이다. 3. NOTInverter라고도 하며 입력값을 반대로 출력해준다. 수식으로는 X= A' 라고 한다. 4. NANDAND에 NOT을 취한 형태이며, 수식으로는 X = (AB)' 이다. 5. NOROR에 NOT을 취한 형태이며, 수식으로는 X = (A + B)' 이다. 6. XOR일명 배타적 논리합이라하며, 수식으로는 X = A'B + AB' 이다. 편의상 X = A XOR B 로 쓰도록 하겠다. 둘이 다른 경우에만 1이다. 7. XNORXOR에 NOT을 취한 형태이며, 수식으로는 X = A'B' +.. 더보기