【VS开发】【DSP开发】地址对齐
组成原理说明------地址对齐
1.引入
1.1如下面的代码,定义了三个变量,int,char,int,并输出他们的十六进制的内存地址。
#include<stdio.h>
int main()
{
int a;
char b;
int c;
printf("a:%x b:%x c:%x\n",&a,&b,&c); //输出: a:22ff1c b:22ff1b c:22ff14
return 1;
}
1.2图示分析上述代码
代码中为定义的变量a,b,c分配了内存单元,分配内存单元是从大地址开始分配的,可见a的内存地址大于b的地址。(除非分配的内存单元循环了。从0跳大了最大,又开始新的一轮减小)
int占用4个字节,char占用1个字节。
从代码中可以看出为三个连续定义的变量的内存分配是不连续的。这就是因为地址对齐的原因。
2.地址对齐概念
地址对齐其实就是CPU设计中的一个时空权衡,这里采用的是空间换时间的。主要的解决问题是如何能过快速的读取给定的一个变量。
目前的主流计算机有32位,64位这是地址线,一般数据线与地址线条数相同。
如果放置数据时不考虑地址对齐,32位的CPU读取一个4字节的int最少需要一次内存访问,最多需要2次访问内存。下图中左面,取一个int要两次内存访问,而右边的只需要一次内存访问。
上面的左图为什么是2次访问内存呢?这个需要用组成原理说明。
3.计算机组成原理解释地址对齐
这里使用32位说明。16位的80x86,和目前流行的64位也是一样的。
32位字长的机器,能一次访问的数据是32bits。
如下图所示:32条数据线,分成了4组,这样就可以使用字节编码,最小的访问内存单元为一个字节。
同样给出一个32位地址最多可以访问32位的数据。
若一个int数据保存在32位机器中如2中的左图所示,一次只能访问到2字节数据,所以需要2次内存访问;若一个int数据保存在32位机器中如2中的右图所示,给出一次地址就能够访问整个int数据。
4总结
许多RAM都采用地址对齐,加速CPU。
采用地址对齐保存数据对应的地址如下:
【VS开发】【DSP开发】地址对齐的更多相关文章
- DSP开发笔记一
前言 本笔记首先对DSP的特点及其选型进行了描述,然后重点记录DSP开发环境的搭建及基础工程示例,对为DSP开发新手有一定的指导作用. 1. DSP简介 1.1 主要特点 在一个指令周期内可完成一 ...
- Davinci DM6446开发攻略——DSP开发工程建立
前段时间一直忙一个项目,同时在生活上时时提防和抵抗中国地沟油.国外核心转基因调和油.大豆油.色拉油.大米玉米.可怕的喂药鱼.药水泡农药喷无虫咬的青菜,所以没时间打理自己的博客,让开发攻略停顿了一段时间 ...
- 【DSP开发】CCS数据格式 load
CCS支持的.dat文件详解(转载于hellodsp) CCS支持的.dat文件的格式为: 定数 数据格式 起始地址 页类型 数据块大小 1651 其后是文件内容,每行表示一个数据. 定数固定为&qu ...
- 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发
针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...
- DSP开发资源总结,经典书籍,论坛
OMAP4开发资源总结: 一.TI OMAP4官网介绍: http://www.ti.com.cn/general/cn/docs/wtbu/wtbuproductcontent.tsp?templa ...
- 老罗android开发视频教程 下载地址
感觉老罗android开发视频教程讲得挺好挺全面的,适合新手学习.分享 老罗android开发视频教程 下载地址: 电驴:http://www.verycd.com/topics/2929580/ 老 ...
- 你应该知道的4个DSP开发支持库
引言 在dsp开发中,为了节省开发时间和难度,TI将一些成熟的算法封装为模块,供开发者使用.如果能充分利用这些算法支持库,对于加快dsp开发进程与提高代码质量.稳定性有非常大的帮助. Digital ...
- 【DSP开发】利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程
[DSP开发]利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:前端是时间基于VS ...
- 【DSP开发】DSP能用VS2010生成的链接库文件吗?
[DSP开发]DSP能用VS2010生成的链接库文件吗? 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:可能这个问题让行家看上去就会莞尔一笑,但是很多 ...
随机推荐
- 【Weblogic】-weblogic查看版本及升级
一.查看weblogic版本 1. cd /weblogic/bea/wlserver_10.3/server/lib 2. java -cp weblogic.jar weblogic.versio ...
- Python 多线程Ⅲ
线程优先级队列( Queue) Python的Queue模块中提供了同步的.线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列Prior ...
- @RequestMapping的简单理解
@Controller public class ItemController { @Autowired private ItemService itemService; 获取路径参数.../item ...
- BZOJ 3270: 博物馆 概率与期望+高斯消元
和游走挺像的,都是将概率转成期望出现的次数,然后拿高斯消元来解. #include <bits/stdc++.h> #define N 23 #define setIO(s) freope ...
- BZOJ 2651 城市改建 树形DP+模拟?
题意 给一颗树,删除一条边再加一条边,使它仍为一颗树且任意两点间的距离的最大值最小. 题目数据范围描述有问题,n为1或重建不能使任意两点距离最大值变小,可以输出任意答案. 分析 删除一条边后会使它变成 ...
- Makefile简单编写实例
介绍一下Makefile的简单编写例子. 编写Makefile的规则就是: 目标文件:依赖文件 (tab)编译规则 现在我有一个文件目录结构为: 解释一下这几个文件.首先我创建makefile目录,底 ...
- Codeforces Gym Joyride(分层图,dijkstra)
题意:有一张图,每条边有一个边权t表示经过所花时间,每个点有两个权t.p,分别表示经过该点所花时间和所花费用,要求找一条路径,从点1出发再回到点1,所花时间恰好为x且费用最小,输出其费用,找不到则输出 ...
- Android_(控件)使用Gallery浏览手机上SD卡中图片
运行截图: (发现后面两张照片是自己自拍,大写的尴尬对图片进行涂鸦了!!!) 程序结构: <?xml version="1.0" encoding="utf-8&q ...
- 创建docker静态化IP
配置桥接网络 桥接本地物理网络的目的,是为了局域网内用户方便访问 docker 实例中服务,不需要各种端口映射即可访问服务. 但是这样做,又违背了 docker 容器的安全隔离的原则,工作中辩证的选择 ...
- Android学习_Selector
Selector 实现组件在不同状态下不同的文字颜色.背景颜色或图片的切换,使用十分方便. 1. 创建方法 第一种:在XML中直接创建selector的XML文件,容易掌握,简单但是不灵活,较为常用. ...