본문 바로가기

분류 전체보기48

[1] System Software & Instruction Set Architecture 시스템 소프트웨어 사용자 또는 응용 프로그램의 요구에 따른 컴퓨터 하드웨어 자원의 제어 및 관리를 담당한다. 운영체제(OS), 언어처리기, 유틸리티 프로그램 등으로 구성된다. 운영체제: 좁은 의미의 시스템 소프트웨어 컴퓨터 시스템의 자원(HW/SW)을 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공(하드웨어를 직접 쓰기는 대단히 불편하므로) e.g.) MS Windows, LINUX 운영체제 제작자는 그 운영체제가 사용될 ISA를 알고 있어야 함 언어처리기: 컴파일러, 어셈블러 등을 가리킴 유틸리티 프로그램: 운영체제와 함께 컴퓨터에 설치되는 프로그램 Machine Dependent 여기서 Machine은 CPU를 의미한다. Machine마다 기계어의 조합을 어떤 식으로 이해할 것인 지가 미리.. 2022. 10. 12.
[3.2] Procedure Call in MIPS II 이전 글에서도 쓴 사진이지만 추가적인 설명을 위해 다시 살펴보자. 지역변수의 경우 함수가 호출될 때 메모리의 Stack에 변수 공간이 생기며, 함수가 리턴되면 지역변수에 해당하는 공간이 사라진다. 또 하나의 함수에서 다른 함수를 호출할 때 전달하는 argument나 호출한 함수가 끝났을 때 되돌아와야하는 위치 등도 Stack에 저장된다. 이제 어떤 함수 C가 다음과 같이 정의되었다고 가정해보자. int procedure_B(int x) { static int c=0; c++; return(x+c); } void C(int z) { int *p = malloc(sizeof(int)); *p = procedure_B(3); printf("%d", *p); } 함수 C에서 만든 포인터의 *p의 공간은 함수 C.. 2022. 10. 2.
[3.1] Procedure Call in MIPS I (프로그램의 메모리 주소 공간 구조) 오른쪽(고급 언어로 작성된 프로그램)을 컴파일하면 실행 파일이 만들어지고 고급 언어가 기계어로 바뀐다. 실행 파일은 메모리에 올라가서 실행된다. (알다시피 메모리에는 주소가 byte단위로 매겨진다.) 위 사진 왼쪽에 쓰여있는 논리 주소란, 실제 하드웨어 상에서의 물리적 주소가 아닌, 각 프로그램이 실행될 때마다 생기는 상대적인 주소를 말한다. 논리 주소의 크기는 ISA에 따라 결정된다. MIPS에서는 32bit 주소 체계를 가지기 때문에 0~(2^32)-1, 총 4GB의 메모리 주소가 매겨진다. 정리하자면 MIPS 아키텍쳐에서는 어떤 프로그램을 쓰든 컴파일이 되었을 때 메모리 상에 0번지부터 (2^32)-1번지까지의 논리 주소가 생성된다. 논리 주소 내의 공간은 Code, Data, Stack으로 나뉜다.. 2022. 10. 2.