[ARM] 어셈블리 명령어란
By Guillermo Austin Kim | 2020년 9월 24일 |
우리가 외국인이 어떤 사람인지 잘 알려면 외국어를 배워야 합니다. 외국어를 직접 말하면서 외국인과 대화를 해야 그 사람의 성격을 제대로 알 수 있습니다. 그렇다면 프로그래머 입장에서 ARM 프로세서가 어떤 동작을 하는 지 파악하려면 무엇을 배워야 할 까요? 바로 ARM 어셈블리 명령어입니다. 미국인과 대화를 하려면 영어를 말하듯 ARM 프로세서와 대화를 하려면 ARM 어셈블리 명령어를 사용해야 합니다. 즉, ARM 어셈블리 명령어는 ARM 프로세서와 소통하는 대화하는 언어라고 말할 수 있습니다. ARM 어셈블리 명령어를 사용하면 ARM 프로세서와 어떻게 대화를 할 수 있을까요?이번에는 프로그래머 입장에서 조금 더 구체적으로 ARM 프로세서와 대화하는 패턴을 예로 들겠습니다. 쉽게 설명을 하면 ARM
ARM64(Aarch64) - 함수 호출시 Stack Push(스택 푸쉬) 규약
By Guillermo Austin Kim | 2017년 12월 25일 |
아래와 같은 콜 스택에서 유저 공간에서 돌던 레지스터 Stack Push와 Exception 발생 시 Stack Push에 대해서 살펴봤어요. 이제는 평상시 함수 호출 시 어떻게 Stack Push를 하는 지 점검하려고 해요. 자 계속 그 동안 다뤄왔던 아래 "rild"란 프로세스의 콜스택에서 msm_ipc_router_sendmsg()-> msm_ipc_router_send_to() 으로 함수가 호출된 후 스택 푸쉬가 어떻게 수행되는 지 점검해볼께요.-000|do_mem_abort()-001|el1_da(asm) -->|exception-002|ch_pop_remote_rx_intent()-003|glink_tx_common()-004|glink_txv()-005|ipc_router_glink
애플 실리콘 맥 실제 제품 발표 소감
By being nice to me | 2020년 11월 10일 |
드디어 대망의 애플 실리콘 맥이 공식 발표되었습니다. A...가 아니라 (Mac의?) M입니다. SoC 라 그냥 하나의 커다란 칩에 다 때려박은 매우 모바일스러운 칩. 이걸 장착한 신형 맥북 에어, 맥 미니, 맥북 프로 13인치가 첫번째 애플 실리콘 맥 라인업이 되었습니다.얘네 셋은 외적인 디자인이 거의 똑같은데(페더리기가 깨우기 한다며 열어보기 할때 부터 맥북 에어 그대로 가는구나 했음) 디자인이 전혀 안바뀐 것은 절약도 하면서 나름 전략적인 선택이 아니었을까 싶습니다. 똑같은 디자인이지만 애플 실리콘을 장착하면 이런 차이가 나게 할 수 있다는 것을 극적으로 보여주기 위한...뭐 개인적인 생각입니다. 빨간색(프로덕트 레드?)이 없음에도 기본적으로 전세대 인텔 모델 대비 3배쯤 빠르다는 것을 기본으로
[ARMv8] 익셉션 클래스가 구현된 코드 분석하기: 리눅스 커널
By Guillermo Austin Kim | 2020년 9월 23일 |
[ARMv8] 익셉션 클래스가 구현된 코드 분석하기: 리눅스 커널 이번 포스트에서는 ARMv8 에서 소개된 익셉션 클래스가 ARMv8 기반의 리눅스 커널에서 어떤 방식으로 구현됐는지 분석합니다. # 익셉션 클래스 소개 소스를 분석하기 전에 ARMv8의 익셉션 클래스를 Q/A 형식으로 소개합니다. Q: 익셉션 클래스란 무엇인가? 익셉션 클래스는 익셉션이 발생한 세부 원인(Cause)를 나타내며 Synchronous 유형의 익셉션이 발생했을 때 익셉션 클래스를 읽을 수 있습니다. Q: 익셉션 클래스는 언제 어떻게 읽을 수 있나? 익셉션 클래스는 Synchronous 유형의 익셉션이 발생했을 때 익셉션 신드롬 레지스터(Exception Syndrom Register)를 통해 읽습니다.익셉션 클래스는