Back to Basics: Pointers0 码力 | 152 页 | 5.61 MB | 1 年前3
RISC-V 开放架构设计之道 1.0.0x86-32(20 条指令,45 字节) # x86-32 (20 条指令,45 字节) # eax 是变量 j,ecx 是变量 x,edx 是变量 i # 指向 a[0] 的指针位于内存地址 esp+0xc,变量 n 位于内存地址 esp+0x10 0: 56 push esi # 把 esi 存到栈中(之后要用 esi) 1: 53 push ebx # 把 ebx 存到栈中(之后要用 ebx) 2: y+0x28> # x86-32(循环内6条指令;共16条指令/50字节) # eax 是变量 i,变量 n 位于内存地址 esp+0x8,变量 a 位于内存地址 esp+0xc # 指向 x[0] 的指针位于内存地址 esp+0x14 # 指向 y[0] 的指针位于内存地址 esp+0x18 0: 53 push ebx # 保存 ebx 1: 8b 4c 24 08 mov ecx,[esp+0x8] 我们编写的 RISC-V 体系结构相关书籍 [Patterson and Hennessy 2021] 的第 2.1 节。 RV32A 用于同步的原子操作有两种: AMO 和 LR/SC 指令要求内存地址对齐,因为硬件维护跨缓存行边界的原子性需要巨大开销。 • 原子内存操作(atomic memory operation, AMO) • 预订取数/条件存数(load reserved / store0 码力 | 223 页 | 15.31 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针因为生产厂家按照的是 1000 倍的换算的,而我们的系统中一般都是按照 1024 倍去计算的。 ## 字还被用于表示内存地址 - 字的长度除了决定一次处理的整数大小之外,还决定了能访问的内存地址的范围。 这是因为内存是一维排列的,假如内存容量是 65536 字节,那所谓的内存地址实际上就是一个从 0 到 65535 范围的整数,也就是两个字节组成的字。 - 处理器去读写内存的时候靠的是寄存器 位的整数,实际上的内存地址并没有 64 位。 - 实际上地址的高 16 位始终和第 48 位一致(符号扩展),也就是虚拟地址空间只有 48 位。 - 而经过 MMU 映射后实际给内存的地址只有 39 位,因此如今的 x64 架构实际上只能访问 512GB 内存,如果插了超过这个大小的内存条他也不会认出来。 • 此外,16 位计算机实际上能通过额外的段寄存器访问到 20 位的内存地址(1MB)。 • 32 位计算机还能通过 PAE 技术(物理地址扩展)访问到 36 位的内存地址(64GB)。 • 64 位计算机反而是因为 16777216 TB 太大,内存地址被阉割到了 39 位(512GB)。 • 64 位计算机:小丑竟是我自己 ## I scpu 命令查看处理器相关信息 bate@archer ~/Codes/course/12/01 (master) $ lscpu Architecture:0 码力 | 128 页 | 2.95 MB | 2 年前3
Hello 算法 1.0.0b1 JavaScript版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块连 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、0 码力 | 185 页 | 14.70 MB | 2 年前3
Hello 算法 1.0.0b1 Swift版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算 法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、树0 码力 | 190 页 | 14.71 MB | 2 年前3
Hello 算法 1.0.0b1 Python版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块连 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、0 码力 | 178 页 | 14.67 MB | 2 年前3
Hello 算法 1.0.0b1 Golang版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算 法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、树0 码力 | 190 页 | 14.71 MB | 2 年前3
Hello 算法 1.0.0b1 Java版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算 法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、树0 码力 | 186 页 | 14.71 MB | 2 年前3
Hello 算法 1.0.0b2 Java版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算 法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、树0 码力 | 197 页 | 15.72 MB | 2 年前3
Hello 算法 1.0.0b2 Swift版Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。 系统通过「内存地址 Memory Location」来访问目标内存位置的数据。计算机根据特定规则给表格中每个单元格编号,保证每块内存空间都有独立的内存地址。自此,程序便通过这些地址,访问内存中的数据。  Figure 3-2. 内存条、内存空间、内存地址 内存资源是设计数据结构与算法的重要考虑因素。内存是所有程序的公共资源,当内存被某程序占用时,不能被其它程序同时使用。我们需要根据剩余内存资源的情况来设计算法。例如,若剩余内存空间有限,则要求算 法占用的峰值内存不能超过系统剩余内存;若运行的程序很多、缺少大块 float, double、字符 char、布尔 boolean 是计算机中的基本数据类型,占用空间的大小决定了它们的取值范围。 在程序运行时,数据存储在计算机的内存中。内存中每块空间都有独立的内存地址,程序是通过内存地址来访问数据的。 数据结构主要可以从逻辑结构和物理结构两个角度进行分类。逻辑结构反映了数据中元素之间的逻辑关系,物理结构反映了数据在计算机内存中的存储形式。 - 常见的逻辑结构有线性、树0 码力 | 199 页 | 15.72 MB | 2 年前3
共 120 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12













