3학년 1학기 전공/컴퓨터 구조
[컴퓨터 구조] Lecture 08: Instructions - Language of the Computer
시데브
2024. 4. 13. 01:25
경희대학교 컴퓨터공학부 김정욱 교수님의 컴퓨터 구조 강의 내용을 기반으로 한 정리글
Translating and Starting a Program
Compiler
- C program -> Assembly language program
- 1970, 1980년대에는 많은 운영체제와 어셈블러가 어셈블리 언어로 작성되었다. -> 메모리가 용량이 적고, 컴파일러가 비효율적이기 때문에
- high-level language 프로그램은 어셈블리어보다 매우 적은 코드로 작성 가능
Assembler
- Assembly Language Code -> Machine Code(Object file)
- Object file: Combination of machine language 명령어, 데이터, 명령어를 메모리에 적절하게 위치시킬 정보
- Machine code: CPU에서 바로 실행될 수 있는 2진코드
Linker
- 독립적으로 어셈블된 모든 오브젝트 파일들을 하나로 묶는 역할을 한다. -> executable file(.exe file)
linker가 중요한 이유
- 컴퓨팅 리소스를 사용하는 모든 함수를 retranslating함
- 각 procedure를 독립적으로 컴파일&어셈블한다. -> online change는 오직 한 번의 procedure 컴파일&어셈블링을 필요로 한다.
Dynamically linked libraries(DLLs)
- 동적으로 링킹된 라이브러리
- 프로그램이 실행되는 동안 링킹되는 라이브러리 루틴(block of codes)
- 프로그램이 실행되기 이전에 라이브러리를 링킹하면?(정적 링킹) -> 라이브러리의 new version이 나와도, old version 사용을 유지한다. 프로그램에서 라이브러리를 사용하지 않아도, 해당 라이브러리의 모든 루틴을 로드한다.
ARM vs. MIPS
ARMv7
- ARM: 임베디드 장치에서 가장 인기있는 ISA(intruction set architecture)
- 임베디드 환경에서는 속도가 빨라야함 -> 경량화 중요
- arm의 목적은 속도 -> divide는 다른 연산에 비해 속도가 굉장히 느림 -> 다른 방법으로 근사화
728x90
반응형