ʵÓÃÎĵµ
Cortex-MϵÁÐ
M0£º
Cortex-M0ÊÇĿǰ×îСµÄARM´¦ÀíÆ÷£¬¸Ã´¦ÀíÆ÷µÄÐ¾Æ¬Ãæ»ý·Ç³£Ð¡£¬Äܺļ«µÍ£¬ÇÒ±à³ÌËùÐèµÄ´úÂëÕ¼ÓÃÁ¿ºÜÉÙ£¬Õâ¾ÍʹµÃ¿ª·¢ÈËÔ±¿ÉÒÔÖ±½ÓÌø¹ý16λϵͳ£¬ÒÔ ½Ó½ü8 λϵͳµÄ³É±¾¿ªÏú»ñÈ¡ 32 λϵͳµÄÐÔÄÜ¡£Cortex-M0 ´¦ÀíÆ÷³¬µÍµÄÃÅÊý¿ªÏú£¬Ê¹µÃËü¿ÉÒÔÓÃÔÚ·ÂÕæºÍÊýÄ£»ìºÏÉ豸ÖС£
M0+£º
ÒÔCortex-M0 ´¦ÀíÆ÷Ϊ»ù´¡£¬±£ÁôÁËÈ«²¿Ö¸ÁºÍÊý¾Ý¼æÈÝÐÔ£¬Í¬Ê±½øÒ»²½½µµÍÁËÄܺģ¬Ìá¸ßÁËÐÔÄÜ¡£2¼¶Á÷Ë®Ïߣ¬ÐÔÄÜЧÂʿɴï1.08 DMIPS/MHz¡£
M1£º
µÚÒ»¸öרΪ FPGA ÖеÄʵÏÖÉè¼ÆµÄ ARM ´¦ÀíÆ÷¡£Cortex-M1 ´¦ÀíÆ÷ÃæÏòËùÓÐÖ÷Òª FPGA É豸²¢°üÀ¨¶ÔÁìÏ鵀 FPGA ×ۺϹ¤¾ßµÄÖ§³Ö£¬ÔÊÐíÉè¼ÆÕßΪÿ¸öÏîĿѡÔñ×î¼ÑʵÏÖ¡£
M3£º
ÊÊÓÃÓÚ¾ßÓнϸßÈ·¶¨ÐÔµÄʵʱӦÓã¬Ëü¾¹ýרÃÅ¿ª·¢£¬¿ÉʹºÏ×÷»ï°éÕë¶Ô¹ã·ºµÄÉ豸£¨°üÀ¨Î¢¿ØÖÆÆ÷¡¢Æû³µ³µÉíϵͳ¡¢¹¤Òµ¿ØÖÆÏµÍ³ÒÔ¼°ÎÞÏßÍøÂçºÍ´«¸ÐÆ÷£©¿ª·¢¸ßÐÔÄܵͳɱ¾Æ½Ì¨¡£´Ë´¦ÀíÆ÷¾ßÓгöÉ«µÄ¼ÆËãÐÔÄÜÒÔ¼°¶ÔʼþµÄÓÅÒìϵͳÏìÓ¦ÄÜÁ¦£¬Í¬Ê±¿ÉӦʵ¼ÊÖжԵͶ¯Ì¬ºÍ¾²Ì¬¹¦ÂÊÐèÇóµÄÌôÕ½¡£
M4£º
ÓÉ ARM רÃÅ¿ª·¢µÄ×îÐÂǶÈëʽ´¦ÀíÆ÷£¬ÓÃÒÔÂú×ãÐèÒªÓÐЧÇÒÒ×ÓÚʹÓõĿØÖƺÍÐźŴ¦Àí¹¦ÄÜ»ìºÏµÄÊý×ÖÐźſØÖÆÊг¡¡£
M7£º
ÔÚ ARM Cortex-M ´¦ÀíÆ÷ϵÁÐÖУ¬Cortex-M7 µÄÐÔÄÜ×îΪ³öÉ«¡£ËüÓµÓÐÁù¼¶³¬±êÁ¿Á÷Ë®Ïß¡¢Áé»îµÄϵͳºÍÄÚ´æ½Ó¿Ú£¨°üÀ¨ AXI ºÍ AHB£©¡¢»º´æ£¨Cache£©ÒÔ¼°¸ß¶ÈñîºÏÄڴ棨TCM£©£¬ÎªMCU Ìṩ³öÉ«µÄÕûÊý¡¢¸¡µãºÍ DSP ÐÔÄÜ¡£
»¥Áª£º64λ AMBA4 AXI, AHBÍâÉè¶Ë¿Ú (64MB µ½ 512MB) Ö¸Á´æ£º0 µ½ 64kB£¬Ë«Â·×éÏàÁª£¬´øÓпÉÑ¡ ECC Êý¾Ý»º´æ£º0 µ½ 64kB£¬ËÄ·×éÏàÁª£¬´øÓпÉÑ¡ ECC Ö¸ÁîTCM£º0 µ½ 16MB£¬´øÓпÉÑ¡ ECC Êý¾ÝTCM£º0 µ½ 16MB£¬´øÓпÉÑ¡ ECC
Îݸ´óÈ«
ʵÓÃÎĵµ
Cortex-MϵÁйæ¸ñ¶Ô±È
Àà±ð Ìåϵ½á¹¹ ISAÖ§³Ö DSPÀ©Õ¹ M0 ARMv6M£¨·ëŵÒÀÂü£© Thumb,Thumb-2 M3 ARMv6M£¨¹þ·ð£© Thumb,Thumb-2 M4 ARMv6M£¨¹þ·ð£© Thumb,Thumb-2 µ¥ÖÜÆÚ16/32λ MAC µ¥ÖÜÆÚË«16λ MAC 8/16λ SIMD ÔËËã Ó²¼þ³ý·¨£¨2-12 ÖÜÆÚ£© µ¥¾«¶È¸¡µãµ¥Ôª ·ûºÏ IEEE 754 3¼¶+·ÖÖ§Ô¤²â 1.25~1.52 8~256 ×î¶à240¸ö M7 ARMv7-M£¨¹þ·ð£© Thumb,Thumb-2 µ¥ÖÜÆÚ16/32λ MAC µ¥ÖÜÆÚË«16λ MAC 8/16λ SIMD ÔËËã Ó²¼þ³ý·¨£¨2-12 ÖÜÆÚ£© µ¥ºÍË«¾«¶È¸¡µãµ¥Ôª ÓëIEEE 754 ¼æÈÝ 6¼¶³¬±êÁ¿ + ·ÖÖ§Ô¤²â 2.14/2.55/3.23 NMI + 1~240ÎïÀíÖÐ¶Ï 8~256 ×î¶à240¸ö ¿ÉÑ¡µÄ8/16ÇøÓò MPU£¬´øÓÐ×ÓÇøÓòºÍ±³¾°ÇøÓò ¼¯³É WFI ºÍ WFE Ö¸ÁîÒÔ¼°Sleep On Exit¹¦ÄÜ¡£ ÐÝÃߺÍÉî¶ÈÐÝÃßÐźš£ ARM µçÔ´¹ÜÀí¹¤¾ß°ü¼°¿ÉÑ¡Retentionģʽ ¸¡µãµ¥Ôª Á÷Ë®Ïß DMISP/MHz ÖÐ¶Ï ÖжÏÓÅÏȼ¶ ÄÚ´æ±£»¤ ˯Ãßģʽ 3¼¶ 0.9~0.99 NMI+1-32ÎïÀíÖÐ¶Ï ¼¯³ÉµÄ WFI ºÍ WFE Ö¸ÁîºÍ¡°Í˳öʱ˯Ãß¡±¹¦ÄÜ¡£ ˯ÃߺÍÉî¶È˯ÃßÐźÅËæ ARM µçÔ´¹ÜÀí¹¤¾ß°üÌṩµÄ¿ÉÑ¡µÄRetention ģʽ 3¼¶ 1.25~1.50 8~256 ×î¶à240¸ö NMI+ 1-240ÎïÀíÖÐ¶Ï NMI + 1~240ÎïÀíÖÐ¶Ï »½ÐÑÖжϿØÖÆÆ÷ ´øÓÐ×ÓÇøÓòºÍºóÌ¨Çø´øÓÐ×ÓÇøÓòºÍºóÌ¨ÇøÓòÓòµÄ¿ÉÑ¡ 8 ÇøÓò MPU µÄ¿ÉÑ¡8ÇøÓò MPU ¼¯³ÉµÄ WFI ºÍ WFE Ö¸ÁîºÍ¡°Í˳öʱ˯Ãß¡±¹¦ÄÜ¡£ ˯ÃߺÍÉî¶È˯ÃßÐźš£ Ëæ ARM µçÔ´¹ÜÀí¹¤¾ß°üÌṩµÄ¿ÉÑ¡±£Áôģʽ ¼¯³ÉWFI ºÍWFE Ö¸ÁîºÍ¡°Í˳öʱ˯Ãß¡±¹¦ÄÜ¡£ ˯ÃߺÍÉî¶È˯ÃßÐźš£ Ëæ ARM µçÔ´¹ÜÀí¹¤¾ß°üÌṩµÄ¿ÉÑ¡ Retention ģʽ ÔöÇ¿µÄÖ¸Áî Ó²¼þµ¥ÖÜÆÚ (32x32) Ó²¼þ³ý·¨£¨2-12 ¸öÖÜ ³Ë·¨Ñ¡Ïî ÆÚ£©ºÍµ¥ÖÜÆÚ (32x32) ³Ë·¨¡¢±¥ºÍÊýѧ֧³Ö¡£ ¿ÉÑ¡ JTAG ºÍ¿ÉÑ¡ JTAG ºÍ´®ÐÐÏßSerial-Wire µ÷ÊԶ˵÷ÊԶ˿ڡ£×î¶à 8 ¸ö¿Ú¡£×î¶à 4 ¸ö¶ÏµãºÍ 2 ¶ÏµãºÍ 4 ¸ö¼ì²âµã¡£ ¸ö¹Û²ìµã µ÷ÊÔ ¿ÉÑ¡ JTAG ºÍ¿ÉÑ¡µÄ JTAG ºÍ ´®ÐÐSerial-Wire µ÷ÊԶ˿ڡ£Ïßµ÷ÊÔ ¶Ë¿Ú¡£×î¶à 8 ×î¶à 8 ¸ö¶ÏµãºÍ 4 ¸ö¸ö¶ÏµãºÍ 4 ¸ö¹Û²ìµã¡£ ¼ì²âµã¡£ ¿ÉѡָÁî¸ú×Ù (ETM)¡¢Êý¾Ý¸ú×Ù (DWT) ºÍ²âÁ¿¸ú×Ù (ITM) ¸ú×Ù ¿ÉѡָÁî¸ú×Ù (ETM)¡¢¿ÉѡָÁî¸ú×Ù (ETM)¡¢ÊýÊý¾Ý¸ú×Ù (DWT) ºÍ²â¾Ý¸ú×Ù (DWT) ºÍ²âÁ¿¸úÁ¿¸ú×Ù (ITM) ×Ù (ITM)
Îݸ´óÈ«
ʵÓÃÎĵµ
Cortex-AϵÁУº
ARM Cortex-A ϵÁÐÊÇһϵÁÐÓÃÓÚ¸´ÔÓ²Ù×÷ϵͳºÍÓû§Ó¦ÓóÌÐòµÄÓ¦ÓóÌÐò´¦ÀíÆ÷¡£Cortex-A ϵÁд¦ÀíÆ÷Ö§³Ö ARM¡¢Thumb ºÍ Thumb-2 Ö¸Á¡£
A5£º
Ò»¸ö¸ßÐÔÄÜ¡¢µÍ¹¦ºÄµÄARMºêµ¥Ôª£¬´øÓÐL1¸ßËÙ»º´æ×Óϵͳ£¬ÄÜÌṩÍêÈ«µÄÐéÄâÄڴ湦ÄÜ¡£Cortex-A5 ´¦ÀíÆ÷ʵÏÖÁË ARMv7 Ìåϵ½á¹¹²¢ÔËÐÐ 32 λ ARM Ö¸Áî¡¢16 λºÍ 32 λ Thumb Ö¸Á»¹¿ÉÔÚ Jazelle ״̬ÏÂÔËÐÐ 8 λ Java ×Ö½ÚÂë¡£Cortex A-5 ÊÇ×îСÒÔ¼°×îµÍ¹¦ºÄµÄ Cortex-A ´¦ÀíÆ÷£¬µ«´¦ÀíÐÔÄÜ±ÈÆäËûAϵÁв
A7£º
Cortex-A7 ´¦ÀíÆ÷µÄ¹¦ºÄºÍÃæ»ýÓ볬¸ßЧ Cortex-A5 ÏàËÆ£¬µ«ÐÔÄÜÌáÉý 15~20%£¬Cortex-A7ÊÇARMµÄ´óСºËÉè¼ÆÖеÄСºË²¿·Ö£¬²¢ÇÒÓë¸ß¶Ë Cortex-A15 CPU Ìåϵ½á¹¹ÍêÈ«¼æÈÝ¡£Cortex-A7´¦ÀíÆ÷°üÀ¨Á˸ßÐÔÄÜ´¦ÀíÆ÷Cortex-A15µÄÒ»ÇÐÌØÐÔ£¬°üÀ¨ÐéÄ⻯£¨virtualization£©¡¢´óÈÝÁ¿ÎïÀíÄÚ´æµØÖ·À©Õ¹£¨Large Physical Address Extensions (LPAE)£¬¿ÉÒÔѰַµ½1TBµÄ´æ´¢¿Õ¼ä£©¡¢NEON¡¢VFPÒÔ¼°AMBA 4 ACE coherency £¨AMBA4 Cache Coherent Interconnect (CCI)£©¡£Cortex-A7Ö§³Ö¶àºËMPCoreµÄÉè¼ÆÒÔ¼°Big+LittleµÄ´óСºËÉè¼Æ¡£Ð¡Ð͸ßÄÜЧµÄ Cortex-A7 ÊÇ×îеͳɱ¾ÖÇÄÜÊÖ»úºÍƽ°åµçÄÔÖжÀÁ¢ CPU µÄÀíÏë֮ѡ£¬²¢¿ÉÔÚ big.LITTLE ´¦ÀíÅäÖÃÖÐÓë Cortex-A15 ½áºÏ¡£
A8£º
µÚÒ»¸öʹÓÃARMv7-A¼Ü¹¹µÄ´¦ÀíÆ÷£¬ºÜ¶àÓ¦Óô¦ÀíÆ÷ÒÔCortex-A8ΪºËÐÄ¡£
Cortex-A8 ´¦ÀíÆ÷ÊÇÒ»¸ö˫ָÁîÖ´ÐеÄÓÐÐò³¬±êÁ¿´¦ÀíÆ÷£¬Õë¶Ô¸ß¶ÈÓÅ»¯µÄÄÜЧʵÏÖ¿ÉÌṩ 2.0 Dhrystone MIPS£¨Ã¿ MHz£©£¬ÕâЩʵÏÖ¿ÉÌṩ»ùÓÚ´«Í³µ¥ºË´¦ÀíÆ÷µÄÉ豸ËùÐèµÄ¸ß¼¶±ðµÄÐÔÄÜ¡£Cortex-A8 ÔÚÊг¡Öй¹½¨ÁË ARMv7 Ìå ϵ½á¹¹£¬¿ÉÓÃÓÚ²»Í¬Ó¦Ó㬰üÀ¨ÖÇÄÜÊÖ»ú¡¢ÖÇÄܱ¾¡¢±ãЯʽýÌå²¥·ÅÆ÷ÒÔ¼°ÆäËûÏû·ÑÀàºÍÆóҵƽ̨¡£·Ö¿ªµÄL1Ö¸ÁîºÍÊý¾Ýcache´óС¿ÉÒÔΪ16KB»òÕß 32KB£¬Ö¸ÁîºÍÊý¾Ý¹²ÏíL2 cache£¬ÈÝÁ¿¿ÉÒÔµ½1MB¡£L1ºÍL2 cacheµÄcacheÊý¾Ý¿í¶ÈΪ128±ÈÌØ£¬L1 cacheÊÇÐéÄâË÷Òý£¬ÎïÀíÉÏÁ¬Ðø£¬¶øL2ÍêȫʹÓÃÎïÀíµØÖ·¡£Cortex-A8µÄL1 cacheÐпí¶ÈΪ64byte£¬L2 cacheÔÚÆ¬ÄÚ¼¯³É¡£ÁíÍâºÍCortex-A9Ïà±È£¬ÓÉÓÚCortex-A8Ö§³ÖµÄ¸¡µãVFPÔËËã·Ç³£ÓÐÏÞ£¬ÆäVFPµÄËٶȷdz£Âý£¬ÍùÍùÏàͬµÄ¸¡µãÔË Ë㣬ÆäËÙ¶ÈÊÇCortex-A9µÄ1/10¡£Cortex-A8Äܲ¢·¢Ä³Ð©NEONÖ¸ÁÈçNEONµÄload/storeºÍÆäËûµÄNEONÖ¸Á£¬¶ø Cortex-A9ÒòΪNEONλ¿íÏÞÖÆ²»Äܲ¢·¢¡£Cortex-A8µÄNEONºÍARMÊÇ·Ö¿ªµÄ£¬¼´ARMºËºÍNEONºËµÄÖ´ÐÐÁ÷Ë®Ïß·Ö¿ª£¬NEON·Ã ÎÊARM¼Ä´æÆ÷ºÜ¿ì£¬µ«ÊÇARM¶ËÐèÒªNEON¼Ä´æÆ÷µÄÊý¾Ý»á·Ç³£Âý¡£
A9£º
Cortex-A9 MPCore»òÕßµ¥ºË´¦ÀíÆ÷µ¥MHzÐÔÄܱÈCortex-A5 »òÕß Cortex-A8¸ß£¬Ö§³ÖARM, Thumb, Thumb-2, TrustZone, Jazelle RCT£¬Jazelle DBX¼¼Êõ¡£L1µÄcache¿ØÖÆÆ÷ÌṩÁËÓ²¼þµÄcacheÒ»ÖÂÐÔά»¤Ö§³Ö¶àºËµÄcacheÒ»ÖÂÐÔ¡£ºËÍâµÄL2 cache¿ØÖÆÆ÷(L2C-310, or PL310) Ö§³Ö×î¶à8MBµÄcache¡£Cortex-A9µÄL1 cacheÐпí¶ÈΪ32byte£¬L2 cacheÒòΪ¶àºËµÄÔÒòÔÚºËÍ⼯³É£¬¼´Í¨¹ýSCUÀ´·ÃÎʶàºË¹²ÏíµÄL2 cache¡£
³£¼ûµÄCortex-A9´¦ÀíÆ÷°üÀ¨nVidia's Ë«ºËTegra-2, ÒÔ¼°TI's OMAP4ƽ̨¡£Ê¹ÓÃ
Îݸ´óÈ«