cpu 생김새
컴퓨터의 모든 기능을 cpu가 한다고 했는데, 그러면. 이 칩의 상당히 많은 기능이 포함되어있어야 할거 같죠
어떻게 하나의 칩에 여러 기능을 담을 수 있었을 까요?
원리는 어렵지 않다. 키보드와 비슷하다. 우리가 평소에 쓰는문자의 개수는 엄청나게 많지만 키보드에 보면 한 키에 여러개의 단어를 입력할 수 있을 것이다. 칩도 같은원리다. 어떤 기능을 사용할지에 대한 입력신호가따로잇어서 신호에따라 어떤 기능을 할지 정해주면 된다.
비슷한 방식으로 우리가 저번 수업시간에 만든 덧셈회로를 가지고 뺄셈회로를 가지고 만들 수 있는데 이 두개의 기능을 하나의 칩에 합친다고 해보자.
만일 이 기능을 이용하려고 입력 신호에 두 개의 숫자만 입력한다면 이 칩이 덧셈을 해야할지 뺄셈을 해야할지 모를 것이다. 그렇기 때문에 우리는 이 칩이 뺄셈을 할건지 덧셈을 할 건지 알려줘야한다. 우리는 그 신호를 operation code 줄여서 opcode라고 한다.
만약 여기서 더 기능을 추가하고 싶다면 어떻게 해야할까? 다르 기능을 더 추가하려면 추가적인 opcode 입력이필요하다. 여기에 곱셈과 나눗셈이 추가 된다고 하자. 그러면 총 4가지의 기능이있으니까 opcode가 2자리 숫자가 되어야한다. 이로써 기능을 더 추가할 수 있다.
참고로 이런 칩이 보통의 cpu에 여러개 들어 있는데, 이렇게 여러개의 수학 연산 기능을 할 수 잇는칩을 alu라고 한다. 대신 기능의 개수가 많을수록 더 긴 opcode가 필요할 것이다. 실제로 cpu에는 꽤 다양한 기능ㅇ들이 있기때문에 여러개의 opcode가 있다. cpu의 종류와 용도에 따라 다르지만 cpu에 들어가는 opcode는 보통 6자리 내외이다. 000000~111111 총 64가지의 기능을 가질 수 있다.
앞서 cpu를 동작시키는 것이 instruction이라고 했는데, 보통 인스트럭션의 앞부분이 opcode이다. 그리고 그 뒤에 나머지 숫자는 그 기능에 따라 활용하게 된다. 머신코드를 볼때 앞쪽 숫자들은 주로 어떤 기능을 할지 의미한다고 보면 된다.