티스토리 뷰
byte alignment 에 관한 내용
(Why Restrict Byte Alignment?)
32bit 마이크로프로세서는 전형적으로 아래의 그림과 같이 구성되어 있습니다. 메모리는 32bit bus cycles을 수행함으로 접근됩니다. bus cycle이란 주메모리(ram)와 cpu간의 한번의 트랜잭션을 뜻합니다. 그러나 32bit bus cycles는 4로 나누어 떨어지는 주소상에서만 수행됩니다. 정렬되지 않은 long word 에 대해 읽고 쓰는것을 허용하지 않는 것은 이해하기 쉽습니다.
예를 들어 정렬된 long word 인 X는 X0, X1, X2, X3 에서 처럼 쓰여질 수 있습니다. 이런상황에서 마이크로프로세서는 단 한번의 bus cycle로 X를 읽을 수 있습니다. 만약 동일한 마이크로프로세서가 0×000D에 위치한 long word 를 읽으려고 한다면, Y0, Y1, Y2 와 Y3를 읽여야 하는데 이때는 단일 32bit bus cycle로는 읽을 수가 없습니다. 마이크로프로세서는 완전한 long word를 읽기 위해 서로 다른 주소인 0×100C와 0×1010에서 읽어와야 합니다. 이렇게 정렬되지 않은 주소의 4byte 데이터타입은 2번의 읽기를 수행해야 합니다.
byte alignment 를 사용하는 방법
http://kldp.org/node/38252
gcc compiler option : -fpack-struct
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 제주영귤
- 그림편집
- 영귤
- 고강도
- 녹색농원
- 상식
- 영귤차
- 늙기
- network error
- 데크에 바인딩묶기
- 무릎마사지
- 인테리어
- 인공눈
- 스타치
- 칠오름농장
- 대일농장
- sudachi
- 편집프로그램
- 과학
- breakpoint
- 미스터피자주문
- 보드고글
- 제주녹색농원
- 인공안구
- icon tool
- 샤워기전
- 의학
- 명언
- 칠오름
- icon program
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함