일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 빅데이터
- 파이썬
- 코딩
- 컴퓨터과학
- 프로그래밍언어
- 소프트웨어공학
- 데이터구조
- 클라우드컴퓨팅
- 컴퓨터비전
- 컴퓨터공학
- 머신러닝
- 데이터베이스
- 웹개발
- 프로그래밍
- 딥러닝
- 2
- 보안
- 소프트웨어
- 자료구조
- 데이터과학
- 데이터분석
- 버전관리
- Yes
- I'm Sorry
- 알고리즘
- 네트워크
- 네트워크보안
- 자바스크립트
- 인공지능
- 사이버보안
- Today
- Total
목록캐시동작원리 (2)
스택큐힙리스트
나는 cpu가 RAM과 명령어 캐시를 비교하는 것 같다고 추측한다 (만약 c가 실제로 RAM에 있다면). 특히, 매우 큰 점프를 할 때 (위의 mmapped 메모리에 대한 호출과 같이) 명령 포인터가 캐시를 무효화하고 일치하지 않을 때 (전부?) 그것에 대해 더 정확한 정보를 얻기를 희망한다. 특히 이 동작이 예측 가능한 것으로 간주되고 (하드웨어 및 운영 체제의 차이를 제외하고) 의존할 수 있는지 알고 싶다.(아마도 인텔 매뉴얼을 참조해야할 것 같은데, 그게 수천 페이지로 이루어져 있어서 그 안에서 길을 잃는 경향이 있어...)답변 1파워PC는 캐시를 비활성화한 경우에도 컨텍스트 동기화 명령의 발행이 필요하다는 사실을 주목하는 것은 흥미롭습니다. 로드/스토어 버퍼와 같은 깊은 데이터 처리 유닛의 플러시..
저는 예시를 좋아해서 C 언어로 자기 수정 코드를 조금 작성해보았습니다... #@!'#include #include // linuxint main(void) { unsigned char *c = mmap(NULL, 7, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0); // get executable memory c[0] = 0b11000111; // mov (x86_64), immediate mode, full-sized (32 bits) c[1] = 0b11000000; // to register rax (000) which holds the return value // according to linux x86_64 calling..