计算机组成原理
文章平均质量分 73
luoganttcc
微信:luogantt
展开
-
存储器 DDR4
的 DDR4 内存[7]。较小,各厂家规格不一,发展十分缓慢,从 SIMM 到 EDO DRAM,市场始终在尝试。课题研究中的 DDR4 内存属于随机存取存储器(RAM)的一种[6]。随着 CPU 性能的不断提升,人们对内存的要求逐步上升,在初代 SDRAM 基础上,新的内存类型,直到第一代 SDRAM 内存的出现,内存才迎来了其高速发展的时期。储器的使用类型可将其分为只读型存储器(ROM)和随机型存取存储器(RAM),本。存储器作为可以储存大量信息的电子元件,是电子产品的重要组成部分[5]。原创 2022-12-14 17:27:07 · 526 阅读 · 0 评论 -
片上总线概述
针对以上各片上总线协议的概述并结合本设计中DMAC的高性能、高速率,内核通信等特点,以及设计完成的DMAC封装IP后的通用性,并且ARM处理器的广泛使用,如STM32系列、STM8系列,还有大家比较熟悉的ARMV7架构的Cortex-A5,A7,A8,A9,A12,A15,ARMV8架构的Cortex-A53,A57,A72,AMBA总线拥有众多的第三方支持,被ARM公司的90%以上的合作伙伴采用,因此本文主要基于AMBA3.0版本的AHB、APB、AXI总线规范进行设计,总线,可以有效地减少通路阻塞。原创 2022-12-13 12:05:37 · 952 阅读 · 0 评论 -
DMA简介
简单理解就是,在进行 I/O 设备和内存的数据传输的时候,数据搬运的工作全部交给 DMA 控制器,而 CPU 不再参与任何与数据搬运相关的事情,这样 CPU 就可以去处理别的事务。用户进程调用 read 方法,向操作系统发出 I/O 请求,请求读取数据到自己的内存缓冲区中,进程进入阻塞状态;操作系统收到请求后,进一步将 I/O 请求发送 DMA,然后让 CPU 执行其他任务;DMA 进一步将 I/O 请求发送给磁盘;转载 2022-12-13 11:22:01 · 333 阅读 · 0 评论 -
AMBA 总线历史
构的 Cortex-A5,A7,A8,A9,A12,A15,ARMV8 架构的 Cortex-A53,A57,AMBA 第三代总线在 2003 年发布,在 AMBA3.0 中,对 APB 规范做了升级,另外 AMBA5.0 也陆续升级了其他的协议版本,如 AXI5,ACE5,AHB5,采用,因此本文主要基于 AMBA3.0 版本的 AHB、APB、AXI 总线规范进行设计,A72,AMBA 总线拥有众多的第三方支持,被 ARM 公司的 90%以上的合作伙伴。原创 2022-11-17 05:30:29 · 689 阅读 · 0 评论 -
eMMC5.1
Data Strobe: 数据锁存线,该信号由 eMMC 设备产生,用于 HS400 模式下的输出。地,在进入 8 位模式后,设备立即断开线路 DAT1–DAT7 的内部上拉。在进入 4 位模式后,设备立即断开线路 DAT1、DAT2 和 DAT3 的内部上拉。CLK:时钟信号线,由 FPGA 提供,用于 FPGA 控制模块与 eMMC 设备之间的通。在 eMMC5.1 协议中,仅对外部接口模块和内部控制器的功能和时序作了统一的规。模式:用于初始化模式的开漏和用于快速命令传输的推拉。原创 2022-11-17 05:22:44 · 2121 阅读 · 0 评论 -
DMA详解
DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问。DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。转载 2022-11-17 05:03:53 · 1863 阅读 · 0 评论 -
linux源码阅读笔记 jmpi指令(转)
他们把1024K地址空间分成16字节的段,共64K个段,用一个8085的16位寻址寄存器作地址偏移寄存器(故段的长度是64K),而另一个8085的16位寻址寄存器作16字节段的段地址寄存器,注意,他保存的不是16字节段的地址,而是16字节段的序号(0,1,...65535)。要了解发生了什么,我们要看看处理器的内部,会看到巨大的差异。但还不是一般的相加,由于相加前段基址已经左移4位,变成20位了(最低4位是0),而偏移还是16位,所以,其实是段基址和偏移的高12位相加,偏移的低4位不变。转载 2022-09-13 16:39:47 · 726 阅读 · 0 评论 -
硬盘基本术语(磁道、扇区、柱面、磁头数、簇)
由于硬盘的转速较高,磁头在完成某个扇区数据的读写后,必须将数据传输到微机,这需要一个时间,但是这时硬盘在继续高速旋转,当数据传输完成后,磁头读写第二个扇区时,磁盘已经旋转到了另外一个扇区。定位时,首先确定柱面,再确定盘面,然后确定扇区。当主电动机带动盘片旋转时,副电动机带动一组(磁头)到相对应的盘片上并确定读取正面还是反面的碟面,磁头悬浮在碟面上画出一个与盘片同心的圆形轨道(磁轨或称柱面),这时由磁头的磁感线圈感应碟面上的磁性与使用硬盘厂商指定的读取时间或数据间隔定位扇区,从而得到该扇区的数据内容。转载 2022-09-13 15:29:34 · 6532 阅读 · 0 评论 -
把 用寄存器做内存就一定能提高计算机的效率吗
link 3 * 10** 8* 0.25*10**-9=0.075 m原创 2022-09-08 16:38:15 · 156 阅读 · 0 评论 -
磁盘的零扇区物理位置
对于计算机的操作系统来说,磁道是逻辑结构而非物理结构,是在磁盘低级格式化时建立的。磁道被编号,从 0(磁盘的最外边缘)开始,一直到编号最高的磁道,通常为 1023,(靠近中心)。轨道定位数据在工厂组装期间被写入磁盘。扇区是磁盘上最小的物理存储单元,其大小几乎总是 512 字节,因为 512 是 2 的幂(2 的 9 次幂)。磁道被编号,从 0(磁盘的最外边缘)开始,一直到编号最高的磁道,通常为 1023,(靠近中心)。为了补偿这种物理差异,靠近磁盘外部的磁道填充数据的密度低于靠近磁盘中心的磁道。原创 2022-09-05 13:40:31 · 1255 阅读 · 0 评论 -
硬盘驱动器基础知识
如果连续簇不可用(磁盘上彼此相邻的簇),则后两个簇可能会写入同一磁盘上的其他位置或同一柱面或不同的柱面 — 文件系统发现两个可用扇区的地方.扇区是磁盘上最小的物理存储单元,其大小几乎总是 512 字节,因为 512 是 2 的幂(2 的 9 次幂)。因此,即使在远离磁盘中心的磁道上磁盘表面的速度更快,也可以在恒定的时间段内读取固定数量的数据。将文件存储在磁盘上的最佳方法是以连续序列的形式存储,即流中的所有数据在一行中端到端存储。为了补偿这种物理差异,靠近磁盘外部的磁道填充数据的密度低于靠近磁盘中心的磁道。原创 2022-09-05 13:32:31 · 1229 阅读 · 0 评论 -
函数运行时在内存中是什么样子?
和游戏中的每个任务一样,当函数在运行时每个函数也要有自己的一个“小盒子”,这个小盒子中保存了函数运行时的各种信息,这些小盒子通过栈这种结构组织起来,这个小盒子就被称为栈帧,stack frames,也有的称之为call stack,不管用什么命名方式,总之,就是这里所说的小盒子,这个小盒子就是函数运行起来后占用的内存,这些小盒子构成了我们通常所说的栈区。进程和线程的运行体现在函数执行上,函数的执行除了函数内部执行的顺序执行还有子函数调用的控制转移以及子函数执行完毕的返回。...原创 2022-09-01 13:05:55 · 137 阅读 · 0 评论 -
函数栈桢原理
正如我们在之前的文章中看到的,栈驻留在虚拟内存的高地址端,并向下增长。译者注:原作者为64位系统,译者为32位系统机器,但是为了和原文中图片示意保持一致,这里直接贴上原文的结果,不像之前的文章在本地环境实践过。(译者注:在很多翻译过来的书上,有些地方将Stack翻译为栈桢,有的地方叫堆栈,只要知道这里的堆栈是指Stack,Heap没关系就好)在进入函数时将rbp的上一个值推入堆栈,所以rbp现在被设置为rbp的上一个值。计算机实际上并不知道我们在代码中使用的变量的名称,它只是引用栈上的内存地址。......原创 2022-08-31 18:13:58 · 1038 阅读 · 1 评论 -
一口气看完45个寄存器 ——x86/x64架构
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果以及一些CPU运行需要的信息。x86架构CPU走的是复杂指令集(CISC)路线,提供了丰富的指令来实现强大的功能,与此同时也提供了大量寄存器来辅助功能实现。通用寄存器标志寄存器指令寄存器段寄存器控制寄存器调试寄存器描述符寄存器任务寄存器MSR寄存器。...原创 2022-08-31 18:11:28 · 3228 阅读 · 1 评论 -
血型 Blood Type and Rh Rhesus Status By Countries
世界血型比例原创 2022-08-30 19:11:21 · 93 阅读 · 0 评论 -
英特尔会是下一个诺基亚吗?
除此之外,本该过渡到 10nm 阶段量产的 CPU,却集体排队在 14nm 与其他边缘产品排队抢产能,就导致了抢不到产能的边缘产品线不得不寻找外部力量代工,而原本该进行 10nm\7nm 研发的 TMG 部门主力,也不得不匀出大部分精力去兼顾 14nm+,14nm++,14nm+++ 的量产,从而使得先进制程的研发一拖再拖,与业界先进工艺差距越拉越大。据 PassMark 最新数据,AMD 的 CPU 市占率,已经从 2016 年的不足 10% 一路增长至如今的 37.5%,创下 14 年来的最高纪录。..原创 2022-08-30 17:51:19 · 222 阅读 · 0 评论 -
Intel开发者手册[2021最新版]和AMD开发者手册[2021年最新版]
Intel开发者手册 [2021年最新打包版]说明:这些手册都可以在官网免费下载,我这里将下载链接给了出来,同时也在CSDN上传了打包版本,链接也给出。上传的和给的链接都是截至目前最新版本,网上很多版本都是16年左右的,这里希望都帮到大家。Intel开发者手册(Intel® 64 and IA-32 Architectures Software Developer’s Manuals)整体打包链接Intel开发者手册 [2021年最新打包版]...原创 2022-08-30 17:08:49 · 457 阅读 · 0 评论 -
CPU中断
因为中断处理完之后是要回去继续执行之前的程序的,所以当发生中断的时候,操作系统需要进行上下文切换,就是要先保存当前的工作状态,以便中断处理完再恢复到原来的状态。所有的需要发中断的外设都要和中断控制器的引脚相连,控制器会根据引脚的编号来给中断编号,比如1号中断,2号中断,…1、陷阱:是一种有意的,预先安排的异常事件,一般是在编写程序时故意设下的陷阱指令,而后执行到陷阱指令后,CPU将会调用特定程序进行相应的处理,处理结束后返回到陷阱指令的下一条指令。一旦发生了中断,就把手头的工作先放一边,去处理一下。...原创 2022-08-30 08:45:59 · 1237 阅读 · 0 评论 -
riscv fpga
starfive-techriscv 模拟器vivado-riscv原创 2022-08-30 11:00:38 · 167 阅读 · 0 评论 -
ubuntu install cuda it works
ubuntu install cuda it works原创 2022-08-25 14:59:34 · 214 阅读 · 0 评论 -
计算机科学领域有哪些优秀的博客?
quora 有类似的问题,相对于国内美帝的高手更多。原创 2022-08-25 14:53:31 · 139 阅读 · 0 评论 -
函数栈帧(值得收藏)
在CPU中,通常有通用寄存器,如指令寄存器IR;而push的意思是压栈,即这里是将ebp放到栈顶,而随着栈顶的移动,指向栈顶的esp也应该移动到栈顶,在32位下地址大小为4字节,所以这里也是向上移动(减)4字节。如图,函数是在栈上创建的,如果这是main函数的函数栈帧,那么当程序运行到main函数时,寄存器ebp和esp中存放的地址就是main函数的首尾地址。这里是将ebp+8(a)的值放到eax里面,然后将ebp+0Ch(b)的值加到eax中,最后将eax的值放到ebp-8(z)中。...原创 2022-07-15 18:47:28 · 188 阅读 · 0 评论 -
Accelera Systems Initiative是一个独立的非营利组织
Accelera Systems Initiative是一个独立的非营利组织,致力于创建、支持、促进和推进全球电子行业使用的系统级设计、建模和验证标准。一个收集了非常多的关于HDL标准的网站原创 2022-07-01 15:46:45 · 135 阅读 · 0 评论 -
浙江大学课程攻略共享计划
https://qsctech.github.io/zju-icicles/https://github.com/QSCTech/zju-icicles原创 2022-06-27 18:51:22 · 1036 阅读 · 0 评论 -
计算机专业书籍 git
https://github.com/weaiken/ebook原创 2022-06-27 18:46:26 · 142 阅读 · 0 评论 -
手把手教你移植 tinyriscv 到FPGA上
原文链接tinyriscv 官方库链接:https://gitee.com/liangkangnan/tinyriscv用 Git 克隆到本地。(使用的终端软件是 Cygwin,安装教程:https://blog.csdn.net/qq_44447544/article/details/123246995?spm=1001.2014.3001.5501)打开 tinyriscv 文件夹,可以看到有很多目录:这里 rtl 为tinyriscv Verilog源码。用 Vivado 创建工程,并把源码和约束添原创 2022-06-27 18:29:47 · 474 阅读 · 0 评论 -
【tinyriscv verilator】分支移植到正点原子达芬奇开发板
原文链接前言为了完成自己的毕设,得用OpenOCD作上位机,测试下RISC-V的单步调试以及GDB调试等操作,然后看了下tinyriscv-verilator的调试模块支持这些操作,所以来移植下该版本的tinyriscv,以博客进行记录。一些基础操作这里不再赘述,不会的读者可以去看我的另一篇博客:手把手教你移植 tinyriscv 到FPGA上 https://blog.csdn.net/qq_44447544/article/details/123251073码云链接:https://gitee.co原创 2022-06-27 17:49:17 · 431 阅读 · 0 评论 -
51 | 分布式计算:如果所有人的大脑都联网会怎样?
51 | 分布式计算:如果所有人的大脑都联网会怎样?原创 2022-06-16 10:38:57 · 182 阅读 · 0 评论 -
48 | DMA:为什么Kafka这么快?
48 | DMA:为什么Kafka这么快?原创 2022-06-16 10:39:09 · 179 阅读 · 0 评论 -
55 | 理解Disruptor(下):不需要换挡和踩刹车的CPU,有多快?
55 | 理解Disruptor(下):不需要换挡和踩刹车的CPU,有多快?原创 2022-06-16 10:39:22 · 205 阅读 · 0 评论 -
54 | 理解Disruptor(上):带你体会CPU高速缓存的风驰电掣
54 | 理解Disruptor(上):带你体会CPU高速缓存的风驰电掣原创 2022-06-16 10:39:34 · 314 阅读 · 0 评论 -
47 | SSD硬盘(下):如何完成性能优化的KPI?
47 | SSD硬盘(下):如何完成性能优化的KPI?原创 2022-06-15 14:04:06 · 321 阅读 · 0 评论 -
46 | SSD硬盘(上):如何完成性能优化的KPI?
46 | SSD硬盘(上):如何完成性能优化的KPI?原创 2022-06-15 14:02:02 · 285 阅读 · 0 评论 -
45 | 机械硬盘:Google早期用过的“黑科技”
45 | 机械硬盘:Google早期用过的“黑科技”原创 2022-06-15 13:58:10 · 272 阅读 · 0 评论 -
44 | 理解IO_WAIT:I/O性能到底是怎么回事儿?
44 | 理解IO_WAIT:I/O性能到底是怎么回事儿?原创 2022-06-15 13:55:49 · 674 阅读 · 0 评论 -
43 | 输入输出设备:我们并不是只能用灯泡显示“0”和“1”
43 | 输入输出设备:我们并不是只能用灯泡显示“0”和“1”原创 2022-06-15 12:31:42 · 199 阅读 · 0 评论 -
42 | 总线:计算机内部的高速公路
42 | 总线:计算机内部的高速公路原创 2022-06-15 12:27:47 · 290 阅读 · 0 评论 -
41 | 理解内存(下):解析TLB和内存保护
41 | 理解内存(下):解析TLB和内存保护原创 2022-06-15 12:19:50 · 505 阅读 · 0 评论 -
40 | 理解内存(上):虚拟内存和内存保护是什么?
40 | 理解内存(上):虚拟内存和内存保护是什么?原创 2022-06-15 12:12:42 · 247 阅读 · 0 评论 -
cache 一致性解密
如果内存中的某个变量被多个 CPU 加载到各自的 Cache 中,从而使得变量对应的 Cache Line 状态为 Shared,若此时某个 CPU 打算对此变量进行写操作,则会导致所有拥有此变量缓存的 CPU 的 Cache Line 状态都变为 Invalid,这是引发性能下降的一种典型 Cache Miss 问题...原创 2022-06-15 09:06:37 · 270 阅读 · 0 评论