CS/Computer Architecture 6

6. Arithmetic for Computer

Integer Addition 정수 덧셈 연산을 진행할 때 조심해야 할 것이 오버플로(overflow)입니다. 오버플로는 bit 범위를 벗어나는 경우를 말합니다. 양수와 음수를 더하는 경우에는 발생하지 않고 양수 두 개를 더해 sign bit이 1이 되거나 음수 두 개를 더했는데 sign이 0이 되는 경우에 발생하는 것입니다. 오버플로가 발생했을 때 프로그래밍 언어마다 처리하는 방식이 다릅니다. C언어의 경우 오버플로를 무시하기에 프로그래머들이 발생하지 않도록 해야 합니다. Arithmetic for Multimedia 그래픽이나 음성을 처리하는 경우 8-bit, 16-bit 데이터를 많이 처리하게 됩니다. 64-bit adder를 사용하는 경우 8-bit를 8개, 16-bit을 4개 모아서 64 bit..

5. Instructions

위 코드는 bubble sort c코드입니다. 이 코드를 어셈블리어로 바꿔보겠습니다. 각각의 변수들을 위 사진과 같은 레지스터에 매핑했을 때 아래와 같은 코드가 나오게 됩니다. integer array 이까 개수만큼 k를 곱하여 어레이를 만들고 v와 더해 t1 레지스터에 넣습니다. 이러면 v [k] 어레이의 시작 주소가 t1 레지스터가 됩니다. 이후 v [k+1] 값을 t2에 넣습니다. 다음으로는 Non-leaf 예제에 대해서 알아보겠습니다. bubble sort는 기본적으로 2개의 loop가 필요합니다. 이 경우에는 코드가 길어집니다. inner loop와 outer loop 2개가 존재하며 아래에서 5번째 줄에서 swap function을 부르는 것을 볼 수 있습니다. Effect of Compile..

4. Instructions

Six Steps in Execution of a Procedure 위 6단계는 프로세서에서 함수를 처리할 때 진행하는 동작으로 대부분의 프로세서가 이 6단계를 거칩니다. 첫 번째로 caller가 callee가 액세스 할 수 있는 곳에 argument를 가져다 둡니다. MIPS에서는 argument가 a0 ~ a3까지 4개의 레지스터를 통해 전달됩니다. 그다음 caller가 callee에게 control을 넘깁니다. 이제 callee가 실행되기 위해서 스택 공간에 메모리를 할당받습니다. 이후 callee가 일을 진행하고 끝나면 caller가 액세스할 수 있는 곳에 return value 값을 가져다 둡니다. MIPS에서는 v0 ~ v1으로 두 개의 value register를 사용합니다. 마지막으로 ca..

3. Instructions: Language of the Computer

명령어 집합(Instruction set)은 컴퓨터에서 사용하는 명령어들의 집합으로 서로 다른 컴퓨터는 다른 명령어 집합을 사용합니다. 하지만 대부분의 경우에 공통된 특징을 많이 가지고 있습니다. 이 책에서 선택한 명령어 집합은 MIPS이며 MIPS의 instruction set은 다른 명령어 집합에 비해서 간결하고 쉽게 배울 수 있습니다. ISA는 Instruction Set Archtecture의 약자입니다. ISA는 lowest level software인 system software나 운영체제 간의 interface 역할을 해줍니다.(필요한 정보들을 instruction에 담아서 cpu에 주면 해당 instruction을 실행함) ISA는 같은 소프트웨어를 실행할 때 성능과 비용에 따라 다른 구현..

2. The Power wall

Wall에는 Power Wall과 Memory Wall가 존재합니다. clock rate는 2004년도까지는 급격하게 증가하지만 그다음부터는 거의 정체되어 있습니다. (clock rate가 증가하면서 전력 소모도 급격히 증가했지만 지금은 안정됨) clock rate를 증가시키면 전력 소모가 증가하게 되는데 프로세서가 발전하면서 필요 전력량을 더 이상 높일 수 없을 정도로 높아진 발열 문제를 겪고 있기 때문에 현재는 clock rate를 증가시키는 방법이 아닌 전압을 낮춰서 트랜지스터를 더 많이 집적하거나 클럭을 높이는 방식으로 성능을 개선하고 있습니다. $$Power = Capacity\,Load \times Voltage^2 \times Frequancy$$ 전력 소모를 구하는 공식입니다. 보시면 전압..

1. Performance

컴퓨터 기술을 빠르게 발전하고 있는데 그 원동력은 무어의 법칙으로 설명이 가능합니다. 무어의 법칙은 특정한 싱글 칩에 들어가는 트랜지스터의 수가 매 2년마다 2배씩 증가한다는 법칙입니다. (실제로는 2배보다 더 크게 증가했습니다, 로그 스케일 함수처럼 증가) 과거에는 많은 연산량을 가진 문제들에 대해서는 해결하지 못했지만 컴퓨터 성능이 발전하면서 새로운 애플리케이션들이 등장하고 있습니다. 컴퓨터는 크게 2가지로 나눌 수 있습니다. 첫 번째가 개인용 컴퓨터(Personal computer)로 가격 대비 성능에 민감하다는 특징이 존재하고 두 번째가 서버 컴퓨터(Server computer)로 고가에 대용량이며 고성능입니다. 최근에는 임베디드 컴퓨터(Embedded computer)들이 많이 보급되고 있습니다..

반응형