오늘 해볼 내용은 안드로이드 기기 내부의 cpu인 ARM에 대한 내용이다.
제목이랑 사진은 arm 하니까 생각난게 팔이라서 그냥 넣어 봤다.
귀여운 눈사람과 함께 arm에 대해서 알아보자
ARM이란 무엇일까?
일단 ARM은 adavanced RISC Machine의 약자로 CPU의 한 종류다.
안드로이드 뿐만 아니라 다양한 기기에도 이용 되고 있는 ARM 프로세서의 특징으로는
1. 전력 소모가 적다.
2. 성능에 따라 다양한 CPU를 제공한다.
더 다양하게 특징들이 있지만 안드로이드 공부인 관계로 안드로이드와 관 련된 것 같은 것 만 적어 보았다.
또한 ARM이 advanced RISC Machine의 약자라고 했었는데 중간에 있는 RISC도 약자가 Reduced instuction Set computer이다. (둘이 합치면 엄청 길겠디)
아무튼 RISC의 특징은
1. 상대적으로 적은 수의 명령어를 가짐
2. 명령어들의 복잡도를 줄임
3. 하드웨어보다는 소프트웨어에 유연성과 기능성을 제공
4. 컴파일러에 더욱 의존한다
가 있다.
이제 본격적으로 ARM에 대해서 알아 보겠다.
전체적인 ARM 프로세서의 구조 이다.
ARM 코어에 대해서는 밑에서 설명하도록 하고 우리는 다른 부분 부터 확인 해봐야 한다.
MMU : CPU코어 안에 탑재 되어 가상 주소를 실제 메모리 주소로 변환해주는 장치다. 이를 통해 다양한 어플리케이션을 지원 할 수 있다.
캐시 : ARM 코어에서 읽기 요청이 있을 때 명령과 데이터 전달을 최대한 빠르게 하기 위한 고속 메모리 장치다. 대부분 캐시를 가진 프로세서는 메모리를 관리하기 위해 위에 말한 MMU MPU 같은 제어 장치가 있고 고속으로 동장하는 코어와 저속으로 동작하는 시스템 버스 사이의 속도 차이를 극복하기 위해 쓰기 버퍼를 사용 한다.
쓰기 버퍼 : 메모리에 쓰이기 위해 기다리는 동안 데이터를 저장하는 역할을 합니다. 자세한 내용은 다음에 적어 보도록 하겠습니다.
버스 인터페이스 유닛 : 핸드폰내부에는 CPU 뿐만 아니라 RAM, 사운드 카드등이 존재하는데 이들은 서로 데이터를 주고 받으면서 동작한다. 그 데이터를 주고 받기 위한 매개체가 바로 I/o 버스다. 하지만 i/o 버스의 통신 방식을 모르면 데이터를 주고 받을 수 없다. 즉 CPU내에서 I/o버스의 통신 방식을 이해 하고 있는 장치가 필요한데 이것을 버스 인터 페이스라고 한다.
메모리 제어기 : 메모리를 제어 해준다. ( 간단하게 쓴 이유는 잘 몰라서 이다. 나중에 추가 해보겠다)
DRAM : 단기간에 메모리를 저장하고 전원이 꺼지면 날리느 휘발성 메모리 이다.
NAND : 메모리에 정보를 저장하고 전원이 꺼져도 지속적으로 정보를 유지하는 비휘발성 메모리 이다.
ARM 코어 : Arm 아키텍처의 기본원리를 이용하여 구현한 프로세서의 핵심 부분이다. 일반 적인 프로세서의 기본 구조와 동일 하게 레지스터,ALU,제어장치,명령어 해석기와 내부에서 서로 정보를 교환하기 위한 데이터 경로로 구성 되어 있다. ( 위 내용은 좀더 공부 해봐야 할 내용이며 추후 업데이트 예정이다)
'안드로이드에 관하여 > 안드로이드 공부' 카테고리의 다른 글
Android Hacker's Handbook 2장 -2- (0) | 2021.01.25 |
---|---|
Android Hacker's Handbook 2장 -1- (0) | 2021.01.24 |
Android Hackers Handbook 1장 (0) | 2021.01.16 |
APK 보호기법 (0) | 2021.01.06 |
what is Smali code? (0) | 2021.01.02 |