IT_Study/CS_Study40 [Computer Architecture] (3) Big endian & Little endian 엔디언는 아래와 같이 위키백과에서 자세히 정의를 해두었다. 엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특히 바이트 순서(Byte order)라 한다.엔디언은 보통 큰 단위가 앞에 나오는 빅 엔디언(Big-endian)과 작은 단위가 앞에 나오는 리틀 엔디언(Little-endian)으로 나눌 수 있으며, 두 경우에 속하지 않거나 둘을 모두 지원하는 것을 미들 엔디언(Middle-endian)이라 부르기도 한다.[1]위에서 이야기하는 것처럼 'Byte를 어떻게 배열할 것인가'에 대한 방법을 말한다. 즉, Byte 내의 bit 배열은 서로 같다는 것을 의미한다. 예를 들어, 1-Byte의 크기를 가지는 Ch.. 2024. 4. 27. [Computer Architecture] (2) Memory Alignment Memory Alignment는 일반적으로 Memory에 저장되어 있는 데이터를 접근 하는 방식을 고려하여 데이터를 저장하는 방법을 의미한다. 데이터를 저장하는 방법에 따라 Memory를 접근하는 횟수가 달라질 수 있다. 현재까지도 CPU와 Memory의 성능 차이는 좁혀지고 있지 않다. 과거 컴퓨터 아키텍처 연구가 활발히 수행되었던 시점에도 마찬가지였다. 그래서 많은 연구들이 어떻게 하면 이 차이를 좁혀서 전체 성능을 높일 수 있을 까에 대한 해결책을 찾기위해 진행되었다. Memory Alignment 기법도 Memory 접근을 효율적으로 하기 위한 방법 중에 하나이다. Memory로부터 Address Map과 읽어오는 데이터 크기 관점으로 어떻게 데이터를 읽어오는 지 알아 보자. Addres.. 2024. 4. 27. [Computer Architecture] (1-1) Pipelining Pipeline은 하나의 테스크를 여러 개의 하위 테스크로 나누고 이를 동시에 수행하여 테스트 처리량을 높이는 기술이다. 가장 유명한 예제는 옷을 세탁하는 테스크를 수행하는 것이다. 옷을 세탁하는 테스크을 세탁->건조->접기->수납 4가지 하위 테스크로 나눈다. 2개의 세탁물을 수행하려면 아래와 같이 순차적으로 진행할 수 있다. (각 세탁물을 A, B로 지정하고, 각 하위 테스크별 시간은 1시간이라 가정하자.) ============================================ 1 2 3 4 5 6 7 8 A : 세탁-->건조-->접기-->수납 B : 세탁-->건조-->접기-->수납 ============================================ 위와 같이 순차적으로 수행하면.. 2024. 4. 24. [Parallel Computing] (14) Virtual Memory Virtual Memory는 OS가 메인 메모리를 추상화하여 사용하는 개념이다. 각 프로세스는 각자의 고유한 크고 일정한 주소공간을 갖는 것처럼 동작할 수 있다. 또한 실제 메인 메모리 크기보다 더 큰 주소 공간을 가질 수 도 있다. 나머지 부족한 공간은 스토리지를 활용하여 채우게 된다. 프로세스가 특정 주소에 접근을 하면 OS는 이를 실제 주소(Physical Address)로 변환하여 메인 메모리에 접근한다. OS는 각 프로세스 별로 Page Table을 관리한다. 즉 프로세스는 실제 주소로 접근이 불가능하므로 다른 프로세스들이 사용하는 주소에도 접근할 수 없다. 이렇듯 추상화를 사용하면 각 프로세스의 메모리 공간은 보호가 된다. OS가 주소 변환을 수행하면, 매우 느리기 때문에 MMU(Memory .. 2024. 4. 21. 이전 1 ··· 3 4 5 6 7 8 9 10 다음