计算机系统
文章平均质量分 84
物随心转
子曰:“学而时习之,不亦说乎?”
展开
-
L1,L2,L3 Cache缓存原理
CPU缓存(Cache Memory)也被称为Cache,是存储器子系统的组成部分,存放着程序经常使用的指令和数据。从广义的角度上看,Cache是快设备为了缓解访问慢设备延时的预留的Buffer,从而可以在掩盖访问延时的同时,尽可能地提高数据传输率。原创 2023-05-14 16:09:45 · 1950 阅读 · 0 评论 -
多核与多处理器的区别
多核:单块CPU上面能处理数据的芯片组的数量,比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。多处理器:主板上实际插入的cpu数量,一般有两个或者多个处理器(CPU)CPU 或者成为处理器是计算的大脑,CPU 的执行单元称之为核(core),它负责指令的读取和执行。这些指令可能是计算、输出传输、分支指令等。具有一个核的处理器称之为单核处理器,相应的具有多核的处理器称之为多核处理器。高性能的计算机,可能会有六核或者八核处理器。原创 2023-05-14 15:53:49 · 4312 阅读 · 0 评论 -
spi,iic,uart,pcie区别
与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。I2C 的特点和信号: I2C 也可以是多从系统,它是通过地址信息来选择从机的。SPI 是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口,是同步传输协议,特征是:设备有主机(master)和从机(slave)的区分,主机在通讯时发送时钟信号。* 超级快速模式:最高 5Mbit/s,单向(主机只发送),不兼容,不支持多主。原创 2023-04-26 20:56:49 · 2291 阅读 · 0 评论 -
BIOS与POST自检
BIOS是英文"BasicInput-Output System",中文名称就是"基本输入输出系统",是集成在主板上的一个ROM芯片,意思是只读存储器基本输入输出系统。顾名思义,它保存着计算机最重要的基本输入输出的程序,还包括开机后自检程序和系统自启动程序。除此以外,它还可从 CMOS 中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。一块主板性能优越与否,很大程度上取决于板上的BIOS管理功能是否先进。原创 2023-04-21 21:04:18 · 2233 阅读 · 0 评论 -
主板上的南桥与北桥
一、历史曾经,北桥芯片和南桥芯片都是主板芯片组中最重要的组成部分。传统来说,靠上方的叫北桥,靠下方的叫南桥。北桥负责与CPU通信,并且连接高速设备(内存/显卡),并且与南桥通信;南桥负责与低速设备(硬盘/USB)通信,时钟/BIOS/系统管理/旧式设备控制,并且与北桥通信。“桥”的意思是指通信,桥两边匹配的是不同的速度。连接关系如下:CPU——北桥——内存CPU——北桥——显卡CPU——北桥——南桥——硬盘CPU——北桥——南桥——网卡CPU——北桥——南桥——PS/2键鼠原创 2021-10-31 11:47:19 · 22805 阅读 · 0 评论 -
程序在内存中的运行原理
一、背景介绍当进程被加载到内存时,会被分成很多段bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 bss是英文Block Started by Symbol的简称。 bss段属于静态内存分配。data段: 数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。 数据段属于静态内存分配。text段: 代码段(code segment/text segment)通常.转载 2021-09-24 08:10:21 · 2866 阅读 · 0 评论 -
I/O控制方式——通道控制方式
一、定义通道是一个独立于 CPU的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。二、原理2.1 通道控制方式的引入通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担I/O通道控制方式是对DMA控制方式的发展,它进一步使CPU参与到数据传.转载 2021-08-09 23:15:49 · 13437 阅读 · 1 评论 -
整数溢出与回绕
一什么是整数溢出 由于整数在内存里面保存在一个固定长度的空间内,它能存储的最大值和最小值是固定的,如果我们尝试去存储一个数,而这个数又大于这个固定的最大值时,就会导致整数溢出。(x86-32 的数据模型是 ILP32,即整数(Int)、长整数(Long)和指针(Pointer)都是 32 位。)...原创 2021-05-31 08:45:55 · 3218 阅读 · 0 评论 -
SPI总线
一、背景介绍SPI, serial peripheral interface, 串行外围设备接口。高速的,全双工的,同步通信总线。对于有经验的数字电子工程师来说,用SPI互联两支数字设备是相当直观的。SPI是一种四根信号线协议(如图1):时钟——SCLK:Serial Clock (output from master);数据输出——MOSI;SIMO:Master Output,Slave Input;数据输入——MISO;SOMI:Master Input,Slave Output;原创 2021-03-15 00:07:28 · 599 阅读 · 0 评论 -
IIC总线
一、背景介绍现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。IIC 开发于1982年,当时是为了给电视机内的CPU和外围芯片提供更简易的互联方式。电视机是最早的嵌入式系统之一,而最初的嵌入系统是使用内存原创 2021-03-13 16:03:18 · 538 阅读 · 0 评论 -
localbus总线
一、介绍Local Bus总线又称为CPU总线,根据高低位地址线序的差异,又可分为Motorola CPU总线和Intel CPU总线。古老的CS51单片机就是Intel CPU总线的典型代表,而我们常用的Power PC就是Motorola CPU总线架构,它是从60X总线衍变过来的(60X总线支持64、32、16、8四种可选位宽模式),由于Local Bus总线是直接从60X总线上通过桥片分出来的,所以它和60X总线是同步同频的,进行数据数据读写时与60X总线共享带宽,不需要内核提供额外的处理。如下转载 2021-02-25 23:58:33 · 5504 阅读 · 0 评论 -
总线的原理
一、总线概念所谓总线(Bus),是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束。按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是总线上的数据由总线上的所有设备共享。我们可以将计算机系统内的多种设备连接到总线上。如果仅仅是某两个设备或设备之间专用的信号连线,就不能称之为总线。系统总线架构图如下所示:二、工作原理如果说主板(Mothe..原创 2021-02-25 23:41:11 · 6565 阅读 · 0 评论 -
保护模式下分页
一、背景分段机制我们已经再熟悉不过了,前面我们学习过的所有内容都是在分段的机制下工作的。对于一个多任务系统。如果任务比较多,很有可能导致物理内存不够分配的情况。这个时候,操作系统的作用就体现出来了。每个段的描述符都有一个TYPE字段。其中有一个A位,每当访问一个段时,该段的A位就记录该段最近是否被访问过。当一个段很长时间不被访问,操作系统就去将该段从内存中移出去,移到磁盘。从而可以空出一块空闲的内存空间可以供其他程序的段来运行。当这个段页不怎么被访问了,操作系统用同样的方法将其移出去,再加载另一个需要原创 2021-01-01 10:39:05 · 366 阅读 · 0 评论 -
保护模式的分段
一、分段的背景在8086处理器诞生之前,内存寻址方式就是直接访问物理地址。8086处理器为了寻址1M的内存空间,把地址总线扩展到了20位。但是,一个尴尬的问题出现了,ALU的宽度只有16位,也就是说,ALU不能计算20位的地址。为了解决这个问题,分段机制被引入,登上了历史舞台。 为了支持分段,8086处理器设置了四个段寄存器:CS, DS, SS, ES.每个段寄存器都是16位的,同时访问内存的指令中的地址也是16位的。但是,在送入地址总线之前,CPU先把它与某个段寄存器内的值相加。注意,不是直接相加,原创 2020-12-27 22:24:38 · 349 阅读 · 0 评论 -
计算机的保护模式与实模式
一、背景80386开始,CPU有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到操作系统运行起来以后就切换到protected-mode。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存储器共享和保护提供了硬件支持,而且为实现虚拟存储器提供了硬件支持;支持多任务,能够快速地进行任务切.原创 2020-12-27 22:10:42 · 562 阅读 · 0 评论 -
8086CPU只有16位寄存器,却可以访问20位的物理地址
一、背景介绍Intel 8086是一个由Intel于1978年所设计bai的16位微处du理器芯片,是x86架构的鼻zhi祖。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存的队列位指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。二、16位的寄存器为什么可以访问20原创 2020-12-05 15:19:34 · 6586 阅读 · 0 评论 -
寄存器为什么比内存的访问速度快
在计算机的存储层次(memory hierarchy)之中,寄存器(register)最快,内存其次,最慢的是硬盘。具体原因如下一、距离不同距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费更长的时间读取。以3GHz的CPU为例,电流每秒钟可以振荡30亿次,每次耗时大约为0.33纳秒。光在1纳秒的时间内,可以前进30厘米。也就是说,在CPU的一个时钟周期内,光可以前进10厘米。因此,如果内存距离CPU超过5厘米,就不可能在一个时钟周期内完成数据的读取,这还没有转载 2020-12-05 15:20:02 · 2365 阅读 · 1 评论 -
引导加载程序(BootLoader)
引导加载程序(BootLoader)是系统加电后运行的第一段软件代码。x86 系统中的引导加载程序由 BIOS(Basic Input Output System,基本输入输出系统)和位于硬盘主引导记录(MBR,Master Boot Record)中的操作系统引导加载程序(比如,LILO 和 GRUB 等)一起组成。BIOS 在完成硬件检测和资源分配后,将硬盘 MBR 中的引导加载程序读到系统的 RAM 中,然后将控制权交给操作系统引导加载程序。引导加载程序的主要运行任务就是将内核映象从硬盘上读到 RAM原创 2020-11-23 08:32:34 · 4861 阅读 · 0 评论 -
计算机科学技术的道与术
计算机科学存在许许多多的抽象与具体的概念,比如物理内存,虚拟内存。C++的类,抽象类,模板,继承,多态、、、等等,纷纷杂杂。是否这些都有一条总的纲领呢?这还得从哲学谈起,即“形而上者谓之道,形而下者谓之器”。大意是道是无形的,器是有形的。器即器物,所有有形的物质都是器,不单指器皿;而道,是所有器物所存在、运动、发展的总规律,是无形的。但是,道器不离,无形的规律的道,恰好就存在于有形的器物之中。形而上者为之道,其实说的就是抽象的概念,也可以说精神意识方面的特性;形而下者为之器,其实说的就算具体的概念,原创 2020-05-29 11:00:38 · 643 阅读 · 0 评论 -
程序的堆栈是什么
堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间,即动态分配内存。注意,这里的内存指的是虚拟内存,而不是实际的物理内存。虚拟内存需要经过内存管理单元(MMU)转换成物理内存。而栈只是指一种使用堆的方法(即先进后出),即我们常说的一种类似线性表的数据结构。堆栈的特性: 最后一个放入堆栈中的物体总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列。 堆栈中定义了一些操作。 两个最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一 个元素。POP操作相反, 在堆栈顶部移去一个元原创 2020-05-09 10:58:21 · 820 阅读 · 0 评论 -
计算机的内存
内存是电脑的一个硬件组成部分。从单片机的组成我们可以看到,CPU、内存和输入输出接口,就组成一个完整的电脑,其他统统属于外设。内存是可以被CPU通过总线进行操作的,也就是与CPU之间有总线相连接的。电脑所有的输入输出,都是要从内存来实现的。内存包括只读内存ROM和读写内存RAM,但在个人电脑(PC)中,我们通常所说的内存,是指读写内存(RAM)。 程序人员常说的内存其实是虚拟内存,程序直接...原创 2020-03-13 11:13:12 · 281 阅读 · 0 评论 -
Win32程序之进程的原理
原创 2020-03-11 15:39:43 · 169 阅读 · 0 评论 -
进程的地址空间概述
每台计算机都有一些主存用来保存正在执行的程序。在一个非常简单的操作系统中,仅仅有一个应用程序运行在内存中。为了运行第二个应用程序,需要把第一个应用程序移除才能把第二个程序装入内存。复杂一些的操作系统会允许多个应用程序同时装入内存中运行。为了防止应用程序之间相互干扰(包括操作系统),需要有某种保护机制。虽然此机制是在硬件中实现,但却是由操作系统控制的。上述观点涉及对计算机主存的管理和保护。另...原创 2020-03-09 10:08:46 · 1386 阅读 · 0 评论 -
程序的基本运行原理
如图所示,我们如果运行了某个程序,开始输入hello,那么程序将字符逐一读入寄存器,再把它放入存储器(内存)中。利用直接存取(DMA)技术,数据不通过处理器直接从磁盘到达主存...原创 2020-03-02 15:26:56 · 861 阅读 · 0 评论 -
MFC创建内存映射文件一
什么是内存映射文件?首先,“映射”这个词,就和数学课上说的一一“映射”,是一个意思,就是建立一种一一对应关系,在这里主要是指硬盘上文件的位置与进程逻辑地址空间中 一块大小相同的区域之间的一一对应。 而内存映射文件,是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数(CreateFileMapping)。具体到代码就是建立并初始化了相关的数据结...原创 2020-01-17 15:46:04 · 691 阅读 · 0 评论 -
文件的流
文件是一种具有符号名的、相关联元素的有序集合,是用户存储信息于辅助的基本逻辑单位。流设备:大多数的字符设备,如键盘,打印机等,传输的信息均由一组顺序出现的字符序列组成一、按照文件的物理组织结构分类文件在磁盘中是以块为单位存储的,一个文件可以存储到多个连续的存储块中,也可以存储到非连续的块中。所以分为连续文件与非连续文件而非连续文件又可以分为:链接文件,索引文件链接文原创 2017-09-11 08:36:48 · 631 阅读 · 0 评论 -
计算机的SPOOLing技术
早期的计算机只能由一个用户独占,不存在资源竞争的问题。随着多道程序的出现,一个CPU可为多个程序服务,所以采用分时方式让CPU为多个用户服务。然而对独占设备来说,采用分时方式统一管理设备是有问题的。名词解析: 独占设备:一段时间内只允许一个用户(进程)访问的设备,如打印机共享设备:一段时间内允许多个进程同时访问设备,如磁盘 通过某种技术将独占设备改为共享设备。而SPOO原创 2017-10-29 20:56:12 · 865 阅读 · 0 评论 -
内存管理技术——离散分配方式
固定分区,会产生页内碎片等缺点,为此引入了动态分区方式。但动态分区又产生了外部碎片,导致内存的利用率也不理想。为了进一步提高内存的利用率,所以就产生了离散的分配方式。(理论来源于实际问题,这很好的体现在计算机科学中) 离散分配首先要解决的是分配的基本单位问题。通常,分配的基本单位是页与段。页:固定大小的片段。 段:长度可变,用户自己定义的一段数据集合。根据分原创 2017-09-16 19:58:07 · 3938 阅读 · 0 评论 -
计算机操作系统-进程篇
基本概念:进程(progress):执行中的程序或者程序的一次执行线程(LWP):操作系统内部机制在发展过程中对进程的有效细化,是操作系统分配处理器时间的基本单元作业:用户要求计算机系统所做的工作集合,如一次查询,一次计算任务:等同于进程,都是系统的最小工作单位并发:多个程序在某一时间段内同时进行,而在某一时刻只有一个程序执行。最初的操作系统只有进程引入进程的目...原创 2017-04-08 11:53:33 · 1945 阅读 · 0 评论 -
内储管理技术——连续分配方式
简单存储管理技术:早期的操作系统,只支持单进程,为了实现简单。在执行程序之前,操作系统必须将待执行的程序全部装入内存。虚拟存储技术:现代操作系统,支持多进程并发执行,允许进程装入部分程序即可以开始执行。其余部分保留在外存。当执行所需的部分不在内存时,中断进程执行,使之阻塞等待,直到相应部分装入内存。现在操作系统分配内存采用连续分配与离散分配连续分配方式分为单一连原创 2017-08-25 11:20:37 · 1209 阅读 · 0 评论 -
进程的互斥与同步
引入进程,为了描述和实现多个程序的并发执行,以改善资源利用率即提高系统的吞吐量引入线程,减少程序并发执行时系统所付出的额外开销,使操作系统具有更好的并发性进程的互斥与同步同步即协调采用多道程序技术的操作系统,允许多个进程同时驻留内存并发执行如何协调多个进程对系统资源(内存空间,外部设备等)的竞争和共享如果竞争某资源的进程太多,这些进程还必须等待在原创 2017-07-10 23:32:46 · 760 阅读 · 0 评论 -
计算机操作系统-进程的调度算法
先声明下: 引入进程:为了描述和实现多个程序的并发执行,以改善资源利用率即提高系统的吞吐量 引入线程:减少程序并发执行时系统所付出的额外开销,使操作系统具有更好的并发性进程的调度是进程并发控制的关键环节。为了使计算机系统内的多个进程协调,高效的执行,并且最大限度的提高系统的资源利用率(比如处理器,I/O,内存,寄存器等)。我们必须在系统的若干进程中选择某些原创 2017-06-26 22:46:34 · 702 阅读 · 0 评论