arm芯片的数据如何读取

arm芯片的数据如何读取,第1张

csdn已为您找到关于arm芯片信息获取相关内容,包含arm芯片信息获取相关文档代码介绍、相关教程视频课程,以及相关arm芯片信息获取问答内容。日 对于ARM芯片基本都有唯一序列号,这产权保护,产品加密,产品序列号设置带来了极大的方便。但是不同厂家,甚至同一厂家不同系列,读取序列号的方法可能都是不同的。

数据用表格的形式存储在程序存储区,不要放在内存中。

51单片机尽量不要用浮点运算,可以将浮点运算改为定点小数运算,占用空间会小很多,执行速度也能小很多,对要求不是很精确的运算足够了。

随着我们掌上具有强大计算功能的设备的出现,我们听到很多特别需要注意的术语是ARM。这些计算强大的设备的大脑正是基于这一点,在真正讨论它给未来的计算设备带来的好处之前,让我们来看看它究竟是什么,以及它如何与目前使用的其他替代形式的计算处理器不同。

ARM,以前称为高级 RISC 机器,是用于计算机处理器的 RISC(减少指令集计算)体系结构系列,可配置在各种环境中。Arm Holdings 开发该架构并将其许可给其他公司,如 Apple、Qualcomm 等,这些公司设计自己的产品,实现这些架构之一 , 包括芯片上的系统 (SoC) 和包含内存、接口、收音机等的模块系统上系统 (SoM)。

它还设计了实现此指令集的核心,并将这些设计授权给将这些核心设计整合到自己产品的许多公司。然后,这些产品与其他组件一起整合到设备中,形成我们作为消费者购买的最终用户设备。

具有 RISC 架构的 ARM 处理器通常比具有复杂指令集计算 (CISC) 架构的处理器(如英特尔、AMD 等制造商的 x86 处理器)的晶体管需要更少的晶体管,从而提高了成本、功耗和散热能力。这些特性对于轻便、便携式、电池供电的设备(包括智能手机和平板电脑以及其他嵌入式系统)是可取的。即使对于耗电量大的超级计算机,ARM 也可以是一个可行的节能解决方案。

RISC 和 CISC 在当今世界的计算设备中应用广泛。需要更深入地研究它们,以便真正了解其中哪一个更适合我们的计算需求。一般来说,RISC 被许多人视为比 CISC 的改进。这是因为 CISC 是原始的 ISA(指令集体系结构),其中,RISC 是 20 世纪 80 年代初出现的重新设计的 ISA。

没有最好的体系结构,因为不同的体系结构在某些情况下可能更好,但在某些情况下则不太理想。基于 RISC 的计算机每个时钟周期执行一个指令。CISC 机器可以具有特殊说明以及需要多个周期才能执行的说明。这意味着在 CISC 体系结构上执行的相同指令可能需要多个指令才能在 RISC 计算机上执行。RISC 体系结构需要更多的工作 (RAM) 内存来保存值,因为它加载每个指令,对它执行 *** 作,然后加载下一个指令。

CISC 体系结构可以直接在内存上执行一个(尽管更复杂的指令)执行相同的 *** 作。因此,RISC 体系结构需要更多的 RAM,但每个时钟周期始终执行一个指令,以进行可预测的处理,这对于管道处理是好事。RISC 和 CISC 之间的主要区别之一是 RISC 强调每个指令的周期效率,CISC 强调每个程序指令的效率。

快速处理器取决于执行每个时钟周期所用的时间、执行指令的周期数以及每个程序中的指令数。RISC 强调较大的程序代码大小(由于指令集较小,因此连续执行多个步骤可能等同于 CISC 中的一个步骤)。这可以更好地可视化与以下性能方程,通常用于表达计算机的性能能力:

CISC 方法尝试最小化每个程序的指令数,牺牲每个指令的周期数。RISC 会执行相反的做法,以每个程序的指令数成本来减少每个指令的周期。

RISC ISA 强调软件而不是硬件。RISC 指令集需要用更少的指令编写更高效的软件(例如编译器或代码)。CISC ISA 在硬件中使用更多的晶体管来实现更多的指令和更复杂的指令。

RISC 需要更多的 RAM,而 CISC 强调代码大小更小,并且使用比 RISC 的 RAM 整体使用更少。然而,如今许多微处理器都包含 RISC 和 CISC 类属性的组合,例如一种像 CISC 一样使用 ISA 的 ISA,它将指令视为一串 RISC 类型的指令

ARM 及其实施的优势

简而言之,基于 RISC 的 ARM 架构不需要携带 CISC 处理器包含的大量行李来执行其复杂的指令。尽管像英特尔这样的公司已经投入巨资设计处理器,它们包括了先进的超高指令管道,但所有这些逻辑意味着芯片上的晶体管更多,更多的晶体管意味着更多的能源使用。高端英特尔芯片的性能非常出色,但高端处理器的最大 TDP(热设计功率)为 130 瓦。基于 ARM 的最高性能移动芯片消耗不到 4 瓦,通常更少。

这种低功耗是 ARM 如此特殊的原因,它不会尝试创建 130W 处理器,甚至 60W 或 20W。该公司只对设计低功耗处理器感兴趣。多年来,ARM 通过改进微架构设计提高了处理器的性能,但目标功率预算基本保持不变。一般来说,您可以分解 ARM SoC 的 TDP(芯片上的系统,包括 CPU、GPU 和 MMU 等),如下所示:多核 CPU 群集的最大预算为 2 瓦,GPU 为 2 瓦,MMU 和 SoC 的其余部分可能为 05 瓦。如果 CPU 是多核设计,则每个内核可能使用 600 到 750 毫瓦。

这些都是非常通用的数字,因为 ARM 生产的每个设计都有不同的特征。ARM 的第一个 Cortex-A 处理器是 Cortex-A8。它只在单核配置中工作,但它仍然是一个流行的设计,可以在一些设备中找到。接下来是 Cortex-A9 处理器,它带来了速度改进和双核与四核配置的能力。然后是 Cortex-A5 内核,它实际上比 Cortex-A8 和 A9 慢(每个内核),但功耗更低,制造成本更低。它专为低端多核应用(如入门级智能手机)而设计。

在性能规模的另一端,Cortex-A15 处理器,它是 ARM 最快的 32 位设计。它的速度几乎是 Cortex-A9 处理器的两倍,但所有额外的性能也意味着它使用多一点功率。在实现 2Ghz 的时钟速率和超越许多 ARM 合作伙伴的竞赛中,Cortex-A15 核心设计被推到了极限。因此,Cortex-A15 处理器确实有点作为电池杀手的名声。但是,这或许有点不公平。然而,为了补偿 Cortex-A15 处理器的更高功率预算,ARM 发布了 Cortex-A7 内核。

Cortex-A7 处理器比 Cortex-A9 处理器慢,但比 Cortex-A5 处理器快。然而,它的权力预算类似于它的低端兄弟。制作-A7核心时,结合-A15核心在找一个平衡点。LITTLE 配置允许 SoC 在执行简单任务时使用低功耗 Cortex-A7 内核,并在需要重担时切换到 Cortex-A15 内核。结果是设计节省电池,但可以提供最佳的性能。

ARM 还拥有 64 位处理器设计。Cortex-A53 是 ARM 的节能 64 位设计。它不会有破纪录的性能,但它是ARM有史以来效率最大的应用程序处理器。它也是世界上最小的64位处理器。它更大的兄弟,Cortex-A57,是一个不同的野兽。它是 ARM 最先进的设计,具有 ARM 所有 Cortex 处理器中最高的单线程性能。ARM 的合作伙伴可能会发布基于 A53(只有 A57)的芯片,并将两者大为使用。

ARM 管理 从 32 位到 64 位迁移的一个方法是处理器具有不同的模式、32 位模式和 64 位模式。处理器可以在这两种模式之间快速切换,必要时运行 32 位代码,必要时运行 64 位代码。这意味着解码并开始执行 64 位代码的芯片与 32 位芯片是分开的(尽管有重用用以节省面积)。这意味着 64 位逻辑是隔离的、干净的和相对简单的。64 位逻辑不需要尝试和理解 32 位代码,并找出什么是最好的方法。这将需要一个更复杂的指令解码器。这些领域的复杂性通常意味着需要更多的能源。

ARM 64 位处理器的一个非常重要的方面是,它们没有比 32 位处理器使用更多的电源。ARM 已经成功地从 32 位到 64 位,但还停留在其自行实施的能源预算内。在某些情况下,新系列的 64 位处理器实际上将比上一代 32 位 ARM 处理器更节能。这主要是由于内部数据宽度(从 32 位到 64 位)的增加,以及 ARMv8 体系结构中增加了额外的内部寄存器。64 位内核可以更快地执行某些任务,这意味着它可以更快地断电,从而节省电池寿命。

最强大的使用模型大。LITTLE 架构是异构多处理 (HMP),它同时支持使用所有物理内核。在这种情况下,具有高优先级或计算强度的线程可以分配给"大"内核,而优先级较低或计算强度较低的线程(如后台任务)则可由"LITTLE"内核执行。此模型已实现在三星Exynos开始与Exynos 5 Octa系列和苹果移动应用程序处理器开始与苹果A11。

这也是软件的作用。大。LITTLE 处理技术依赖于 *** 作系统的了解,即它是异构处理器。这意味着 *** 作系统需要了解某些内核比其他内核慢。到现在,处理器设计通常情况并非如此。如果 *** 作系统想要执行一项任务,它只会把它耕种到任何核心,因为它们都具有相同的性能级别。这和那个大并不大。LITTLE 使用特定的内核调度程序,它了解大的异构性质。小处理器配置,将决定每个进程/线程的执行。将来,此调度程序可以进一步优化,以考虑内核的当前运行温度或工作电压等。

传统计算中的 ARM

尽管ARM在移动设备中具有压倒性优势,但大多数笔记本电脑和计算机,即对于我们工作流程至关重要的设备,使用基于CISC的处理器。但最近,我们看到这种趋势正在发生变化,而基于ARM的个人电脑处理器也因此而大量涌入。2017 年底,高通和微软宣布了第一款基于 ARM 的处理器的 Windows 10 设备。惠普、和联想都推出了笔记本电脑,其中有高通的Snapdragon 835处理器。

ARM 上的 Windows 10 是微软之前尝试将移动处理器与完全笔记本电脑体验结婚的重启。与迄今为止存在的基于 x86 Intel 的计算机相比,它有望提供更好的电源效率、可靠的性能和始终保持的连接。对于这些 ARM 设备,高通拥有长达 25 小时的电池续航时间,以及与英特尔计算机平起平坐的即时电源和性能。

它还说,内置的LTE连接将提供显著更快的速度比其他可用的LTE设备Windows 10计算机。此外,微软在过去几年中不断改进了对 ARM 芯片的 Windows 支持,其即将推出的与架构无关的精简版 *** 作系统更证明了该公司对市场上拥有更多 ARM 支持的笔记本电脑是认真的。

最近,据报道苹果准备明年推出基于ARM的Macbook。彭博社报道说,苹果计划到2021年将iOS和macOS应用程序结合起来。有传言说苹果会将其MacBook笔记本电脑改用自己的ARM处理器。但是,以前,ARM 芯片没有运行更成熟的桌面应用程序所需的性能。彭博社的这份报告重申,在ARM上运行的Mac可能在2020年到达。Axios的报告似乎证实了这一说法。

然而,除了这些报告,随着iPad Pro在2015年发布,苹果显示,其ARM芯片现在可以处理"PC级"应用程序。自 2015 年以来,与英特尔的 CPU 代相比,Apple 的芯片变得越来越强大,每代芯片的性能都大得多。苹果传统上更喜欢对它设备的核心组件拥有更多的控制权,如果能够负担得起的话,所以苹果最终希望MacBook由为iOS设备供电的相同(或升级的)芯片提供动力,这是有道理的。

谜题的最后一部分是将 x86 macOS 程序过渡到 ARM 指令集体系结构。自去年以来,我们听说苹果正在实施一个名为"Marzipan"的项目,该项目将允许开发人员一次编写他们的应用程序代码,并在 iOS 设备和 macOS 计算机上工作。

几天前,苹果在其年度开发者大会上宣布发布第一版必要的软件套件。首先,苹果将允许开发者只将iPad应用移植到Mac上,因为iPad应用在功能和用户体验上都更接近macOS应用。最初,开发人员仍必须提交两个不同版本的应用,这些应用已针对每个平台优化了用户界面,但基础代码将保持不变。

2020年,苹果的Marzipan软件套件也有望允许开发者将他们的iPhone应用程序移植到Mac上。Apple 的工程师发现,将专为小型屏幕设计的应用程序移植到桌面是具有挑战性的,因此,进行这种过渡需要更长的时间。到 2021 年,第三方应用开发人员将能够创建跨 iOS 设备和 macOS 计算机工作的"单二进制文件"。据推测,它们在每个外形上仍有不同的用户界面,但它们要么更流畅地适应屏幕大小,要么开发人员必须在每个二进制文件中包含不同的用户界面。

ARM 及其合作伙伴也为服务器市场做出了重大公告,他们打算针对更强大的 Neoverse N1 和该芯片的其他变体。最大的公共云服务提供商亚马逊甚至已经开始设计自己的ARM CPU,它也可能很快就会升级到基于N1的处理器。就连谷歌(Google)也从未在Chrome *** 作系统中缺乏ARM支持,尽管 *** 作系统从第一天起就与架构无关,但谷歌似乎也在努力将Snapdragon平台引入一些Chromebook,而这反过来又应该能够更好地实现Chromebook上原生Android应用的功能和可用性。

但是,最初只有 Snapdragon 845 得到支持,因为该公司希望将更便宜的 Chromebook 推向市场。另一个问题似乎是,高通宁愿把Snapdragon 8cx放在售价500美元或更高的Chromebook中,因为这意味着OEM公司能够为8cx支付更高的价格。这将导致市场上有高端 的Chromebook 。

总之,随着 ARM 架构的进步和半导体行业改进的 7nm 光刻工艺,以及投资于基于 ARM 的设备开发的主要制造商,我们可以期待一系列令人振奋的新产品进入市场。有了这个预期的发展道路,作为消费者,我们只能希望未来的计算设备能为我们提供卓越的性能和高效率,并让我们把时间投入我们最擅长的:创造力和创新。

苹果要用自研的ARM芯片替代intel的X86芯片,已经不是什么新闻了。并且在11号凌晨,苹果就会发布采用自研芯片的macbook了。

而借着苹果的这股“东风”,ARM也是活跃了,发布了用于笔记本/电脑的CPU核,那就是A78C,这个CPU核与之前发布的A78最大的区别就是二级缓存变成了8M,同时可以一次性堆8个大核。

要知道ARM以往在CPU核上,都是有讲究的,大家堆核一般都是采用2+2+4或者1+3+4这样的三簇设计,大核只有一个或2个,这样达到性能与功耗的平衡。

但ARM的A78C,可以直接上8个A78C,从而实现性能的最强化,当然功耗也会很大了,但笔记本不像手机,电池大,同时台式机什么的还可以外接电源,所以并没有这个功耗大的顾忌。

可见,这次ARM是真的来势汹汹,真的是要与intel扳手腕了。

坦白讲,这对于中国芯,尤其是电脑领域的中国芯而言,真的是一个好消息。因为ARM架构,IP核都是对外授权的,中国的这些企业们,可以使用ARM的架构、IP核,迅速的推出基于ARM的笔记本芯片,并且性能上不弱于intel的X86芯了,这不是好消息是什么?

毕竟以往在电脑芯片上,国内确实落后intel太远,龙芯、兆芯落后intel至少是5年以上,推出的CPU,性能在某些地方还不及intel5年前的CPU。

但与此同时,这个消息,却也是龙芯、兆芯们的坏消息。为何这么说?以前大家想要用国产芯来替代intel\AMD,想要实现自主可控,所以龙芯、兆芯性能差一点,大家也在使用,尤其是一个政府、机关等单位。

但一旦国内众多的厂商基于ARM推出的CPU,性能比肩intel,也就是说比龙芯、兆芯更强,同时ARM的模式也决定了这些国产芯片,也是自主可控的,你说大家会怎么选?

相信很多厂商会选择ARM的芯片了吧,而不会是选择龙芯、兆芯,所以我说这也算是龙芯、兆芯的坏消息

一 什么是嵌入式系统

嵌入式系统一般指非 PC 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式 *** 作系统及应用软件系统等组成,它是可独立工作的“器件”。

嵌入式系统几乎包括了生活中的所有电器设备,如掌上 PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。

嵌入式系统的硬件部分,包括处理器 / 微处理器、存储器及外设器件和 I/O 端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用 EPROM 、 EEPROM 或闪存 (Flash Memory) 作为存储介质。软件部分包括 *** 作系统软件 ( 要求实时和多任务 *** 作 ) 和应用程序编程。应用程序控制着系统的运作和行为;而 *** 作系统控制着应用程序编程与硬件的交互作用。

二 嵌入式处理器

嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备 4 个特点: (1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时 *** 作系统的执行时间减少到最低限度; (2) 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断; (3) 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器; (4) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为 mW 甚至μ W 级。

据不完全统计,目前全世界嵌入式处理器的品种总量已经超过 1000 种,流行的体系结构有 30 多个系列。其中 8051 体系占多半,生产这种单片机的半导体厂家有 20 多个,共 350 多种衍生产品,仅 Philips 就有近 100 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从 64kB 到 16MB ,处理速度为 01~2000MIPS ,常用封装 8~144 个引脚。

根据现状,嵌入式计算机可分成下面几类。

(1) 嵌入式微处理器 (Embedded Microprocessor Unit, EMPU)

嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成本低、可靠性高的优点,但在其电路板上必须包括 ROM 、 RAM 、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。嵌入式处理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。

(2) 嵌入式微控制器 (Microcontroller Unit, MCU)

嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了 ROM/EPROM 、 RAM 、总线、总线逻辑、定时 / 计数器、看门狗、 I/O 、串行口、脉宽调制输出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各种必要功能部件和外设。为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。通常,嵌入式微处理器可分为通用和半通用两类,比较有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比较有代表性的半通用系列,如支持 USB 接口的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 总线、 LCD 等的众多专用 MCU 和兼容系列。目前 MCU 约占嵌入式系统市场份额的 70% 。

(3) 嵌入式 DSP 处理器 (Embedded Digital Signal Processor, EDSP

在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是 O(nm) 的,甚至是 NP 的,一般结构的处理器无法实时的完成这些运算。由于 DSP 处理器对系统结构和指令进行了特殊设计,使其适合于实时地进行数字信号处理。在数字滤波、 FFT 、谱分析等方面, DSP 算法正大量进入嵌入式领域, DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP 处理器。嵌入式 DSP 处理器有两类: (1)DSP 处理器经过单片化、 EMC 改造、增加片上外设成为嵌入式 DSP 处理器, TI 的 TMS320C2000/C5000 等属于此范畴; (2) 在通用单片机或 SOC 中增加 DSP 协处理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore 。另外,在有关智能方面的应用中,也需要嵌入式 DPS 处理器,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, ADSL 接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是 DSP 处理器的优势所在。嵌入式 DSP 处理器比较有代表性的产品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列处理器包括用于控制的 C2000 系列、移动通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已经发展成为 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等几个不同系列的处理器。另外, Philips 公司最近也推出了基于可重置嵌入式 DSP 结构,采用低成本、低功耗技术制造的 R E A L DSP 处理器,其特点是具备双 Harvard 结构和双乘 / 累加单元,应用目标是大批量消费类产品。

(4) 嵌入式片上系统 (System On Chip, SOC)

随着 EDI 的推广和 VLSI 设计的普及化,以及半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就产生了 SOC 技术。各种通用处理器内核将作为 SOC 设计公司的标准库,和其他许多嵌入式系统外设一样,成为 VLSI 设计中一种标准的器件,用标准的 VHDL 、 Verlog 等硬件语言描述,存储在器件库中。用户只需定义出其整个应用系统,仿真通过后就可以将设计图交给半导体工厂制作样品。这样除某些无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去,应用系统电路板将变得很简单,对于减小整个应用系统体积和功耗、提高可靠性非常有利。 SOC 可分为通用和专用两类,通用 SOC 如 Infineon(Siemens) 的 TriCore 、 Motorola 的 M-Core ,以及某些 ARM 系列器件,如 Echelon 和 Motorola 联合研制的 Neuron 芯片等;专用 SOC 一般专用于某个或某类系统中,如 Philips 的 Smart XA ,它将 XA 单片机内核和支持超过 2048 位复杂 RSA 算法的 CCU 单元制作在一块硅片上,形成一个可加载 Java 或 C 语言的专用 SOC ,可用于互联网安全方面。

三 嵌入式 *** 作系统

嵌入式 *** 作系统是一种支持嵌入式系统应用的 *** 作系统软件,它是嵌入式系统 ( 包括硬、软件系统 ) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等 Browser 。嵌入式 *** 作系统具有通用 *** 作系统的基本特点,如能够有效管理越来越复杂的系统资源;能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;能够提供库函数、驱动程序、工具集以及应用程序 。与通用 *** 作系统相比较,嵌入式 *** 作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。

1 嵌入式 *** 作系统的种类

一般情况下,嵌入式 *** 作系统可以分为两类,一类是面向控制、通信等领域的实时 *** 作系统,如 WindRiver 公司的 VxWorks 、 ISI 的 pSOS 、 QNX 系统软件公司的 QNX 、 ATI 的 Nucleus 等;另一类是面向消费电子产品的非实时 *** 作系统,这类产品包括个人数字助理 (PDA) 、移动电话、机顶盒、电子书、 WebPhone 等。

a 非实时 *** 作系统

早期的嵌入式系统中没有 *** 作系统的概念,程序员编写嵌入式程序通常直接面对裸机及裸设备。在这种情况下,通常把嵌入式程序分成两部分,即前台程序和后台程序。前台程序通过中段来处理事件,其结构一般为无限循环;后台程序则掌管整个嵌入式系统软、硬件资源的分配、管理以及任务的调度,是一个系统管理调度程序。这就是通常所说的前后台系统。一般情况下,后台程序也叫任务级程序,前台程序也叫事件处理级程序。在程序运行时,后台程序检查每个任务是否具备运行条件,通过一定的调度算法来完成相应的 *** 作。对于实时性要求特别严格的 *** 作通常由中断来完成,仅在中断服务程序中标记事件的发生,不再做任何工作就退出中断,经过后台程序的调度,转由前台程序完成事件的处理,这样就不会造成在中断服务程序中处理费时的事件而影响后续和其他中断。

实际上,前后台系统的实时性比预计的要差。这是因为前后台系统认为所有的任务具有相同的优先级别,即是平等的,而且任务的执行又是通过 FIFO 队列排队,因而对那些实时性要求高的任务不可能立刻得到处理。另外,由于前台程序是一个无限循环的结构,一旦在这个循环体中正在处理的任务崩溃,使得整个任务队列中的其他任务得不到机会被处理,从而造成整个系统的崩溃。由于这类系统结构简单,几乎不需要 RAM/ROM 的额外开销,因而在简单的嵌入式应用被广泛使用。

b 实时 *** 作系统

实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应的计算机系统。其 *** 作的正确性不仅依赖于逻辑设计的正确程度,而且与这些 *** 作进行的时间有关。“在确定的时间内”是该定义的核心。也就是说,实时系统是对响应时间有严格要求的。

实时系统对逻辑和时序的要求非常严格,如果逻辑和时序出现偏差将会引起严重后果。实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响应是实时的,并不要求限定某一任务必须在多长时间内完成;而在硬实时系统中,不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。通常,大多数实时系统是两者的结合。实时应用软件的设计一般比非实时应用软件的设计困难。实时系统的技术关键是如何保证系统的实时性。

实时多任务 *** 作系统是指具有实时性、能支持实时控制系统工作的 *** 作系统。其首要任务是调度一切可利用的资源完成实时控制任务,其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。实时 *** 作系统具有如下功能:任务管理 ( 多任务和基于优先级的任务调度 ) 、任务间同步和通信 ( 信号量和邮箱等 ) 、存储器优化管理 ( 含 ROM 的管理 ) 、实时时钟服务、中断管理服务。实时 *** 作系统具有如下特点:规模小,中断被屏蔽的时间很短,中断处理时间短,任务切换很快。

实时 *** 作系统可分为可抢占型和不可抢占型两类。对于基于优先级的系统而言,可抢占型实时 *** 作系统是指内核可以抢占正在运行任务的 CPU 使用权并将使用权交给进入就绪态的优先级更高的任务,是内核抢了 CPU 让别的任务运行。不可抢占型实时 *** 作系统使用某种算法并决定让某个任务运行后,就把 CPU 的控制权完全交给了该任务,直到它主动将 CPU 控制权还回来。中断由中断服务程序来处理,可以激活一个休眠态的任务,使之进入就绪态;而这个进入就绪态的任务还不能运行,一直要等到当前运行的任务主动交出 CPU 的控制权。使用这种实时 *** 作系统的实时性比不使用实时 *** 作系统的系统性能好,其实时性取决于最长任务的执行时间。不可抢占型实时 *** 作系统的缺点也恰恰是这一点,如果最长任务的执行时间不能确定,系统的实时性就不能确定。

可抢占型实时 *** 作系统的实时性好,优先级高的任务只要具备了运行的条件,或者说进入了就绪态,就可以立即运行。也就是说,除了优先级最高的任务,其他任务在运行过程中都可能随时被比它优先级高的任务中断,让后者运行。通过这种方式的任务调度保证了系统的实时性,但是,如果任务之间抢占 CPU 控制权处理不好,会产生系统崩溃、死机等严重后果。

2 嵌入式 *** 作系统的发展

嵌入式 *** 作系统伴随着嵌入式系统的发展经历了 4 个比较明显的阶段。

第一阶段是无 *** 作系统的嵌入算法阶段,是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有 *** 作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格很低,以前在国内工业领域应用较为普遍,但是已经远远不能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等领域的需求。

第二阶段是以嵌入式 CPU 为基础、以简单 *** 作系统为核心的嵌入式系统。这一阶段系统的主要特点是: CPU 种类繁多,通用性比较差;系统开销小, 效率高;一般配备系统仿真器, *** 作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。

第三阶段是通用的嵌入式实时 *** 作系统阶段,是以嵌入式 *** 作系统为核心的嵌入式系统。这一阶段系统的主要特点是:嵌入式 *** 作系统能运行于各种不同类型的微处理器上,兼容性好; *** 作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口 (API) ,开发应用程序简单;嵌入式应用软件丰富。

第四阶段是以基于 Internet 为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于 Internet 之外,但随着 Internet 的发展以及 Internet 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与 Internet 的结合将代表着嵌入式技术的真正未来。

3 使用实时 *** 作系统的必要性

嵌入式实时 *** 作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。

首先,嵌入式实时 *** 作系统提高了系统的可靠性。在控制系统中,出于安全方面的考虑,要求系统起码不能崩溃,而且还要有自愈能力。不仅要求在硬件设计方面提高系统的可靠性和抗干扰性,而且也应在软件设计方面提高系统的抗干扰性,尽可能地减少安全漏洞和不可靠的隐患。长期以来的前后台系统软件设计在遇到强干扰时,使得运行的程序产生异常、出错、跑飞,甚至死循环,造成了系统的崩溃。而实时 *** 作系统管理的系统,这种干扰可能只是引起若干进程中的一个被破坏,可以通过系统运行的系统监控进程对其进行修复。通常情况下,这个系统监视进程用来监视各进程运行状况,遇到异常情况时采取一些利于系统稳定可靠的措施,如把有问题的任务清除掉。

其次,提高了开发效率,缩短了开发周期。在嵌入式实时 *** 作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的解耦原则将整个程序分解为多个任务模块。每个任务模块的调试、修改几乎不影响其他模块。商业软件一般都提供了良好的多任务调试环境。 再次,嵌入式实时 *** 作系统充分发挥了 32 位 CPU 的多任务潜力。 32 位 CPU 比 8 、 16 位 CPU 快,另外它本来是为运行多用户、多任务 *** 作系统而设计的,特别适于运行多任务实时系统。 32 位 CPU 采用利于提高系统可靠性和稳定性的设计,使其更容易做到不崩溃。例如, CPU 运行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及实时地给出 CPU 的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内核的运行实施保护。如果还是采用以前的前后台方式,则无法发挥 32 位 CPU 的优势。

从某种意义上说,没有 *** 作系统的计算机 ( 裸机 ) 是没有用的。在嵌入式应用中,只有把 CPU 嵌入到系统中,同时又把 *** 作系统嵌入进去,才是真正的计算机嵌入式应用。

4 实时 *** 作系统的优缺点

在嵌入式实时 *** 作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时 *** 作系统使得系统资源得到更好的利用。但是,使用嵌入式实时 *** 作系统还需要额外的 ROM/RAM 开销, 2~5% 的 CPU 额外负荷,以及内核的费用。

回答者:与尔同轩 - 榜眼 十三级 8-21 10:05

评价已经被关闭 目前有 1 个人评价

100% (1) 不好

0% (0)

对最佳答案的评论

我想问:嵌入式系统 等不等于 PLC???

评论者: nickkung - 试用期 一级

其他回答共 1 条

一 什么是嵌入式系统

嵌入式系统一般指非 PC 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 PC 中 BIOS 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式 *** 作系统及应用软件系统等组成,它是可独立工作的“器件”。

嵌入式系统几乎包括了生活中的所有电器设备,如掌上 PDA 、移动计算设备、电视机顶盒、手机上网、数字电视、多媒体、汽车、微波炉、数字相机、家庭自动化系统、电梯、空调、安全系统、自动售货机、蜂窝式电话、消费电子设备、工业自动化仪表与医疗仪器等。

嵌入式系统的硬件部分,包括处理器 / 微处理器、存储器及外设器件和 I/O 端口、图形控制器等。嵌入式系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质,而大多使用 EPROM 、 EEPROM 或闪存 (Flash Memory) 作为存储介质。软件部分包括 *** 作系统软件 ( 要求实时和多任务 *** 作 ) 和应用程序编程。应用程序控制着系统的运作和行为;而 *** 作系统控制着应用程序编程与硬件的交互作用。

二 嵌入式处理器

嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备 4 个特点: (1) 对实时和多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时 *** 作系统的执行时间减少到最低限度; (2) 具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断; (3) 可扩展的处理器结构,以能迅速地扩展出满足应用的高性能的嵌入式微处理器; (4) 嵌入式微处理器的功耗必须很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,功耗只能为 mW 甚至μ W 级。

据不完全统计,目前全世界嵌入式处理器的品种总量已经超过 1000 种,流行的体系结构有 30 多个系列。其中 8051 体系占多半,生产这种单片机的半导体厂家有 20 多个,共 350 多种衍生产品,仅 Philips 就有近 100 种。现在几乎每个半导体制造商都生产嵌入式处理器,越来越多的公司有自己的处理器设计部门。嵌入式处理器的寻址空间一般从 64kB 到 16MB ,处理速度为 01~2000MIPS ,常用封装 8~144 个引脚。

根据现状,嵌入式计算机可分成下面几类。

(1) 嵌入式微处理器 (Embedded Microprocessor Unit, EMPU)

嵌入式微处理器采用“增强型”通用微处理器。由于嵌入式系统通常应用于环境比较恶劣的环境中,因而嵌入式微处理器在工作温度、电磁兼容性以及可靠性方面的要求较通用的标准微处理器高。但是,嵌入式微处理器在功能方面与标准的微处理器基本上是一样的。根据实际嵌入式应用要求,将嵌入式微处理器装配在专门设计的主板上,只保留和嵌入式应用有关的主板功能,这样可以大幅度减小系统的体积和功耗。和工业控制计算机相比,嵌入式微处理器组成的系统具有体积小、重量轻、成本低、可靠性高的优点,但在其电路板上必须包括 ROM 、 RAM 、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。由嵌入式微处理器及其存储器、总线、外设等安装在一块电路主板上构成一个通常所说的单板机系统。嵌入式处理器目前主要有 Am186/88 、 386EX 、 SC-400 、 Power PC 、 68000 、 MIPS 、 ARM 系列等。

(2) 嵌入式微控制器 (Microcontroller Unit, MCU)

嵌入式微控制器又称单片机,它将整个计算机系统集成到一块芯片中。嵌入式微控制器一般以某种微处理器内核为核心,根据某些典型的应用,在芯片内部集成了 ROM/EPROM 、 RAM 、总线、总线逻辑、定时 / 计数器、看门狗、 I/O 、串行口、脉宽调制输出、 A/D 、 D/A 、 Flash RAM 、 EEPROM 等各种必要功能部件和外设。为适应不同的应用需求,对功能的设置和外设的配置进行必要的修改和裁减定制,使得一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都相同,不同的是存储器和外设的配置及功能的设置。这样可以使单片机最大限度地和应用需求相匹配,从而减少整个系统的功耗和成本。和嵌入式微处理器相比,微控制器的单片化使应用系统的体积大大减小,从而使功耗和成本大幅度下降、可靠性提高。由于嵌入式微控制器目前在产品的品种和数量上是所有种类嵌入式处理器中最多的,而且上述诸多优点决定了微控制器是嵌入式系统应用的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器。通常,嵌入式微处理器可分为通用和半通用两类,比较有代表性的通用系列包括 8051 、 P51XA 、 MCS-251 、 MCS-96/196/296 、 C166/167 、 68300 等。而比较有代表性的半通用系列,如支持 USB 接口的 MCU 8XC930/931 、 C540 、 C541 ;支持 I2C 、 CAN 总线、 LCD 等的众多专用 MCU 和兼容系列。目前 MCU 约占嵌入式系统市场份额的 70% 。

(3) 嵌入式 DSP 处理器 (Embedded Digital Signal Processor, EDSP

在数字信号处理应用中,各种数字信号处理算法相当复杂,这些算法的复杂度可能是 O(nm) 的,甚至是 NP 的,一般结构的处理器无法实时的完成这些运算。由于 DSP 处理器对系统结构和指令进行了特殊设计,使其适合于实时地进行数字信号处理。在数字滤波、 FFT 、谱分析等方面, DSP 算法正大量进入嵌入式领域, DSP 应用正从在通用单片机中以普通指令实现 DSP 功能,过渡到采用嵌入式 DSP 处理器。嵌入式 DSP 处理器有两类: (1)DSP 处理器经过单片化、 EMC 改造、增加片上外设成为嵌入式 DSP 处理器, TI 的 TMS320C2000/C5000 等属于此范畴; (2) 在通用单片机或 SOC 中增加 DSP 协处理器,例如 Intel 的 MCS-296 和 Infineon(Siemens) 的 TriCore 。另外,在有关智能方面的应用中,也需要嵌入式 DPS 处理器,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘, ADSL 接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是 DSP 处理器的优势所在。嵌入式 DSP 处理器比较有代表性的产品是 TI 的 TMS320 系列和 Motorola 的 DSP56000 系列。 TMS320 系列处理器包括用于控制的 C2000 系列、移动通信的 C5000 系列,以及性能更高的 C6000 和 C8000 系列。 DSP56000 目前已经发展成为 DSP56000 、 DSP56100 、 DSP56200 和 DSP56300 等几个不同系列的处理器。另外, Philips 公司最近也推出了基于可重置嵌入式 DSP 结构,采用低成本、低功耗技术制造的 R E A L DSP 处理器,其特点是具备双 Harvard 结构和双乘 / 累加单元,应用目标是大批量消费类

地址: Multi-armed bandit

   -  A Problem in which a fixed limited set of resources must be allocated between competing (alternative) choices in a way that maximizes their expected gain, when each choice's properties are only partially known at the time of allocation, and may become better understood as time passes or by allocating resources to the choice[1]

    - 经典的强化学习算法( Reinforcement Learning(RL) ),用于处理Exploration-Exploitation(EE) trade-off dilemma。

    - 名字来源于casino中赌博机slot machine(or one armed bandit)

    一个赌徒,要去摇老虎机,走进赌场一看,一排老虎机,外表一模一样,但是每个老虎机吐钱的概率可不一样,他不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?这就是多臂赌博机问题。[2]

     - MAB问题也在 stochastic scheduling 领域范畴中。Stochastic scheduling problems can be classified into three broad types: problems concerning the scheduling of a batch of stochastic jobs ,  multi-armed bandit  problems , and problems concerning the scheduling of queueing systems

     1 有K台machine,每次选取其中一台pull the lever,该machine提供一个random的reward,每一台machine的reward服从特定的概率分布。

     2 一个gambler有N次lever pulls的机会,他的目标是使得回报reward最大化,那么他要确定这N次pull 的arm的顺序。显然,作为一个聪明的赌徒,他会记录下每一次得到的reward,试图找出能给出最大reward的那台machine,尽量多次数的去pull这台machine 的arm。

     3 对于每一轮选择,主要面对的问题是Exploitation-Exploration

        Exploitation: to pull the arm with Highest expected payoff    OR 

        Exploration: to play other machines to get more information about the expected payoffs of them

     4 得到的收益称为reward,一般假设为伯努利分布,即0或1。得到的收益与真实的最大收益(上帝视角,假设一开始就知道哪个payoff最大,那我肯定pull那个arm)之间的差值称为regret。

Online service that benefits from adapting the service to the  individual sequence of requests,  Ad placement, website optimization, and packeting route

1 推荐系统领域,领域有两个经典问题:EE问题和用户冷启动问题。[2]

    EE问题:上面提到过的exploit-explore问题;比如已知某用户对A产品感兴趣,那么在大多数时间要给他推送A的链接才能赚钱,这就是 exploit ;但是为了赚更多的钱,就需要知道他还对哪些产品感兴趣,那么在有些时候就可以尝试一下给他推送B,C,D,E等选择看用户的反应,这就是 explore 。

    用户冷启动问题:面对新用户时如何用尽量少的次数,猜出用户的大致兴趣。[2]

2 临床测试场景clinical trials

    假设有一批用于治疗某种疾病的新药需要进行测试,目标肯定是在尽量少的测试体上进行尝试,找出效果最好的那一种然后应用于其他病患。由于测试需要等待并观察,尽早找出效果最好的药物类型也有利于救助更多的病患;同时,该方法也有助于减少承受不良药物副作用的测试体数量/增加病患存活率。[3]

在讨论算法之前,首先要明确几种bandit model。根据对于reward过程的不同假设,主要可以分为三种类型: Stochastic  , Adversarial   and  Markovian。 几种经典的策略与之对应 , UCB algorithm for the stochastic case,  Exp3 randomized algorithm for theadversarial case, so-called  Gittins indices for the Markovian case[4]

本文目前主要讨论Stochastic bandits problem(另外两种待以后补充),以下为[4]对其定义:

针对MAB问题常用的基本算法有: -greedy, Boltzmann exploration(Softmax), pursuit, reinforcement comparisonm, UCB1, UCB1-Tuned, Thompson Sampling(TS) [3]

arm    共K个arm

round   共N次机会

: The empirical mean of arm i after t rounds

: The probability of picking arm i at round t

实际 *** 作:每一轮在[0,1]生成一个随机数,如果小于\epsilon,则在K个arm中随机选一个;否则选平均收益最大的那个(如果多个则随机选一个)。

- 为了不记录n歌reward,更高效的办法是对均值做增量式计算,每一轮只记录两个变量:已经尝试的次数和最近的平均reward。

对于constant \epsilon,regret的bound是linear的。

如果\epsilon随着时间减小,regret的bound是poly-logarithmic的。

若摇臂奖赏的不确定性较大,比如概率分布较宽,则需要更多的explore,对应较大的\epsilon。若摇臂奖赏的不确定性较小,比如概率分布集中,则少量的尝试就能很好的近似真实奖赏,只需要较小的\epsilon。

通常让epsilon为一个较小的数如01或001。 不过,如果尝试次数很大,在一段时间后各个arm的奖赏都能很好近似出来,不需要再explore,这种情况下可以让epsilon随时间逐渐减小,例如

随机系数 ,称为“温度”。 tau越小则平均奖赏高的摇臂被选取的概况更高;趋于0的时候-〉仅利用exploit; 趋于无穷大的时候-〉仅探索explore

与Pursuit Algorithm类似,RC方法的行为也不是直接由empirical means计算而来。该方法同时还保留一个平均预期回报(average expected reward) ,将平均回报和预期回报作比较。

- 如果 empirical mean 〉average expected reward,选该arm的概率上升。

- 如果empirical mean〈 average expected reward,选该arm的概率下降。

- 对于arm i 存在偏好(preference) , 每一轮preference会根据结果进行更新:

    含有参数: ( The empirical mean of arm  i  after  t  rounds

                        the number of times that arm i has been played after t rounds

    1、初始化: 所有arm都被play一次。

    2、选择arm j(t):

    3、观察选择结果,更新t和ni。其中加号前面是这个臂到目前的收益均值,后面的叫做bonus,本质上是均值的标准差

这个公式反映一个特点:均值越大,标准差越小,被选中的概率会越来越大。被选次数较少的臂虽然可能均值不大,但根号那一项会比较大,也会得到试验机会。

将每个arm的variance引入了考虑

核心思想:[2]

    1 假设每个arm产生收益的概率p符合 Beta(wins,lose)分布,两个参数wins和lose。

    2 每个arm 维护(maintain)一对beta分布的参数。每次实验选一个arm摇一下,有收益该arm的wins+=1 , 否则 lose+=1

    3 每次选arm的方式:用每个arm的beta分布产生一个随机数b,选择所有arm产生的随机书最大的那个arm去摇。

beta(a,b)有a和b两个参数,两个参数决定了分布形状。

a+b的值越大,分布曲线就越集中,反之则越疏远(两边大中间小)

当a/(a+b)的值越大,分布集中位置的中心越靠近1,反之越靠近0,这样产生的随机数位置也相应更容易靠近1或0

因此,Beta分布总体有三种情况,曲线很窄靠近1、曲线很窄靠近0、曲线很宽

由此,若把Beta分布的参数a看做推荐后得到用户点击的次数,把b看做未得到用户点击的次数,如下:

取出每一个候选对应的a和b

为每个候选用a和b作为参数,用Beta分布产生一个随机数

按照随机数排序,输出最大值对应的候选

观察用户反馈,如果用户点击则将对应候选的a增加1,反之b增加1

因此在推荐系统中,为每个用户都保存一套参数,每个用户对应每个物品都保存一份a和b

- 为什么有效?

如果候选被选中次数很多,那么a+b分布变窄,换句话说这个候选的收益已经确定,用它产生随机数,基本就在分布的中心位置附近,接近这个分布的平均收益

如果一个候选不但a+b很大,且a/(a+b)也很大,那么就是一个好的候选项,平均收益很好,每次选择占据优势,就进入利用阶段,反之则几乎再无出头之日

如果一个候选项的a+b很小,分布很宽,就是没有给充分的探索次数,此时不能确定好坏,那么这个较宽的分布有可能得到一个较大的随机数,在排序时被优先输出,给予次数做探索

[Notes]Regret Analysis of Stochastic and Nonsto -

腾讯QQ大数据:神盾推荐——MAB算法应用总结 | 互联网数据资讯中心-199IT | 中文互联网数据研究资讯中心-199IT

小白都能看懂的softmax详解 - bitcarmanlee的博客 - CSDN博客

bandit算法原理及Python实现 - 新颜_USTC - CSDN博客

Contextual Bandit算法在推荐系统中的实现及应用 - 知乎 (比较详细介绍了LinUCB的思想和实现)

    这个系列太值得读了!从整体框架到细节,还有各种资源! 比之前看到的都好多了!    

[1] >

以上就是关于arm芯片的数据如何读取全部的内容,包括:arm芯片的数据如何读取、热敏电阻经过AD后求出的电阻到R-T表查温度,要把整个R-T表定义成数组吗内存不够啊(单片机,ARM,嵌入式)、ARM处理器如何等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9764973.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存