'펌웨어/ARM' 카테고리의 글 목록
본문 바로가기

펌웨어/ARM4

[ARM 아키텍처] 32bit ALU 가산 감산의 원리 ARM CPU의 ALU 안에는 32bit 가산기가 들어있다. 여기서 가산기는 논리회로 시간에 배우는 가산기와 같은 원리이다. 컴퓨터에서는 덧셈 연산도 하지만 뺄셈 연산도 필요하다. 근데 여기서 한가지 기억할 점은 보수 체계를 이용하면 뺄셈을 간단하게 구현할 수 있다는 점이다. 예를 들어 10 - 6을 계산하고자 한다면 보수 체계를 이용하여 가산 연산을 한다는 것은 10 + (-6)을 한다는 것이다. 이 때 +6을 -6으로 바꾸는 작업이 "n의 보수를 취한다" 라고 말한다. (n진수에서) 여기서 n은 진수이고 통상 컴퓨터는 2진수로 연산하기 때문에 2의 보수를 취한다. 2의 보수는 1의 보수에 1을 더한 값으로 구할 수 있다. 1의 보수는 단순히 0을 1로 바꾸고 1을 0으로 바꾼 것이다. 8비트를 예를 .. 2020. 10. 2.
[ARM 아키텍처] 컴퓨터가 처음 실행하는 명령어 ARM core에 전원이 인가되면 가장 처음으로 실행하는 것은 메모리의 0번지(0x0)이다. 특정 명령어로 제한되어있는 것은 아니고, 전원이 인가되면 ARM Core는 자동으로 0번지에 있는 명령어를 실행하도록 설계돼있다. ARM CPU 내부에는 PC(Program Counter)라고 부르는 중요한 레지스터가 존재한다. 이 레지스터의 역할은 CPU가 명령어를 읽으려고 할 때 읽어올 명령어의 위치를 알 수 있게 명령어의 위치를 담고 있는 것이 역할이다. CPU가 명령어를 읽고 나면 PC를 한 칸 증가시키는데, 여기서 1칸은 ARM명령어의 크기에 해당하는 4byte를 의미한다. 즉 PC = 0x0에서 PC = 0x4가 되는 것이다. 이 때 처음 실행되는 명령어의 경우 RAM에 저장할 수 없기 때문에 ROM이.. 2020. 9. 29.
[ARM 아키텍처] 32bit vs 64bit의 의미 자신의 컴퓨터가 32bit인지 64bit인지를 알아보기 위해 누구나 한번쯤은 ㄴ시스템 창을 열어봤으리라 생각이 든다. 32bit 시스템과 64bit 시스템의 차이는 무엇일까? 그리고 어떤 컴퓨터가 좋은 컴퓨터라고 말할 수 있을까? 우선 당연히, 64bit 컴퓨터가 32비트보다 좋다. 그 이유는 정의에서 살펴볼 수 있다. 32bit 컴퓨터는 CPU가 한번에 처리할 수 있는 데이터의 수가 32bit임을 의미하고 64bit 컴퓨터는 CPU가 한번에 처리할 수 있는 데이터의 수가 64bit임을 의미한다. 여기서 '처리'의 의미는 연산을 의미한다. 그래서 CPU에 있는 연산에 관련된 모든 장치(레지스터, ALU 등)는 동일한 bit 수를 따라간다고 보면 된다. 2020. 9. 29.
[ARM 아키텍처] CISC vs RISC 명령어 셋을 논할 때 CISC 방식과 RISC 방식이 있다. 명령어는 제조사마다 그 방식이 모두 다른데, Intel CPU의 경우에는 명령어들의 크기가 전부 제각각이다. 명령어에 따라서 1byte의 크기를 가지기도 하고, 15byte의 크기를 가지기도 한다. 이렇게 명령어의 크기가 다른 특징을 갖는 컴퓨터를 CISC(Coplex Instruction Set Computer)라고 말한다. 이름에서도 알 수 있다시피, 명령어들의 크기가 각각 달라 복잡하다고 볼 수 있다. RISC(Reduced Instruction Set computer)는 CISC와는 반대로 명령어의 크기가 전부 일정한 방식을 의미한다. ARM의 경우에는 32bit(4byte)의 명령어 크기를 가지는데, 명령어에는 필수적으로 Operand.. 2020. 9. 29.