Computer Systems(A Programmer's Perspective)

本文详细介绍了计算机系统的基础概念,包括硬件的构成、存储层次结构、进程、虚拟内存、异常控制流等核心概念。讨论了处理器体系结构,如Y86-64指令集,强调了指令级并行和存储优化的重要性。同时,概述了链接、异常处理、虚拟内存的工作原理,以及优化程序性能的策略,为理解计算机系统提供了全面的视角。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考《深入理解计算机系统》机械工程出版社

Chapter 1 计算机系统漫游

1.1 引入案例hello.c

代码

#include <stdio.h>
int main()
{
	printf ("hello world\n");
	return 0;
}

编译过程
编译过程
运行hello程序 P7

1.2 重要概念

1.2.1 系统的主要硬件

  • 总线
  • I/O设备
  • 主存
  • 处理器

1.2.2 存储设备的层次结构

存储设备的层次结构

1.2.3 进程、虚拟内存和文件

1.2.4 系统间网络通信

1.2.5 并发和并行

  并行是指两个或者多个事件在同一时刻发生;
  并发是指两个或多个事件在同一时间间隔内发生。
  在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
  倘若在计算机系统中有多个处理器,则这些可以并发执行的程序便可被分配到多个处理器上,实现并行执行,即利用每个处理器来处理一个可并发执行的程序,这样,多个程序便可以同时执行。

  并行可以在计算机系统的多个抽象层次上运用
由高到低的三个层次

  • 线程级并发:一个进程执行多个控制流(多个CPU)
  • 指令级并行:CPU同时执行多条指令
  • 单指令、多数据并行:允许一个指令产生多个可以并行执行的操作

1.2.6 计算机系统中的抽象

计算机系统中的抽象

Chapter 2 信息的表示和处理

Chapter 3 程序的机器级表示

ATT 与 Intel 汇编代码格式的不同

  • Intel 代码省略了指示大小的后缀,我们看到指令 push 和 mov,而不是 pushq 和 movq
  • Intel 代码省略了寄存器名字前面的 ’%‘ 符号,用的是 rbx,而不是 %rbx
  • Intel 代码用不同的方式来描述内存中的位置,例如是 ’QWORD PTR [rbx]‘ ,而不是 ’(%rbx)‘。
  • 在带有多个操作数的指令情况下,列出操作数的顺序相反。当在两种格式之间进行转换的时候,这一点非常令人困惑。

Chapter 4 处理器体系结构

4.1 基本概念

  本章主要介绍一个处理器的硬件和指令,以及处理器的工作原理
  本章定义了一个ISA为“Y86-64”指令集,数据类型、指令、寻址方式都比x86少些,设计它的CPU译码逻辑也比较简单,但足够完整。
指令集体系结构ISA
  一个处理器支持的指令和指令的字节级编码
  ISA在编译器编写者和处理器设计人员之间提供了一个概念抽象层,编译器编写者只需要知道允许哪些指令,以及它们是如何编码的;而处理器的设计者必须建造出支持这些指令的处理器。

4.2 Y86-64指令集体系结构

定义一个ISA,包括定义

  • 各种状态单元
  • 指令集
  • 指令集编码
  • 一组编程规范和异常事件处理

程序员可见的状态:可修改的处理器的某些部分

  • 15个程序寄存器:%rax %rbx %rcx %rdx %rsp %rbp %rsi %rdi %r8 %r14
  • 3个一位条件吗:ZF、SF、OF
  • 程序计数器PC
  • DMEM内存
  • 状态码Stat:表明程序执行的总体状态,会指示是正常运行,还是出现了某种异常

指令

  • 4个movq指令:irmovq、rrmovq、mrmovq、rmmovq。显式地指明源和目的操作数。第一个字母表明源类型,可以是立即数(i)、寄存器(r)和内存(m),第二个字母表示目的类型,可以是寄存器(r)或内存(m)
    内存传送指令中的内存引用方式是简单的基址+偏移量形式
    不允许内存间直接传数据,也不允许将立即数传送到内存
  • 4个整数操作指令:addq、subq、andq、xorq。只能对寄存器数据进行操作,x86可对内存操作,这些指令会设置3个条件码ZF、SF、OF
  • 7个跳转指令:jmp、jle、jl、je、jne、jge、jg。
  • 6个条件传送指令:cmovle、cmovl、cmove、cmovne、cmovge、cmovg。
  • call指令:将返回地址入栈,然后跳到目的地址。
    ret指令:从调用中返回
  • pushq和popq:入栈和出栈
  • halt:停止指令的执行,并将状态码设置为HLT

指令编码
见书P246

异常
状态码Stat

名字 含义
1 AOK 正常操作
2 HLT 遇到器执行halt指令
3 ADR 遇到非法地址
4 INS 遇到非法指令

4.3 逻辑设计和硬件控制语言HCL

在当前技术中,逻辑1是用1.0伏特左右的高电压表示的,逻辑0是用0.0伏特左右的低电压表示的。

要实现一个数字系统需要三个主要的组成部分

  • 计算对位进行操作的函数的组合逻辑
  • 存储位的存储器单元
  • 控制存储器单元更新的时钟信号

现代逻辑设计

  • HDL:一种文本表示,用来描述硬件结构而非程序行为的
  • Verilog:语法类似C
  • VHDL:语法类似Ada

组合逻辑

经典计算机操作系统教材第三版,详细内容可见亚马逊。 https://www.amazon.com/Computer-Systems-Programmers-Perspective-Engineering/dp/0134123832/ref=sr_1_2?ie=UTF8&qid=1541476471&sr=8-2&keywords=computer+systems+a+programmer's+perspective Computer systems: A Programmer’s Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer’s perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to programming. This book strives to create programmers who understand all elements of computer systems and will be able to engage in any application of the field--from fixing faulty software, to writing more capable programs, to avoiding common flaws. It lays the groundwork for readers to delve into more intensive topics such as computer architecture, embedded systems, and cyber security. This book focuses on systems that execute an x86-64 machine code, and recommends that programmers have access to a Linux system for this course. Programmers should have basic familiarity with C or C++. Personalize Learning with MasteringEngineering MasteringEngineering is an online homework, tutorial, and assessment system, designed to improve results through personalized learning. This innovative online program emulates the instructor’s office hour environment, engaging and guiding students through engineering concepts with self-paced individualized coaching With a wide range of activities available, students can actively learn, understand, and retain even the most difficult concepts.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值