Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Talk:ARM architecture family/Archive 4

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
<Talk:ARM architecture family
This is anarchive of past discussions aboutARM architecture family.Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on thecurrent talk page.
Archive 1Archive 2Archive 3Archive 4

When does a CPU Architecture become a Company Marketing Bio?

In this article, apparently. I can't tell where the discussion of ARM processors and ARM Holdings begins and ends. They are NOT the same thing. This article should focus strictly on the devices and architecture, NOT the company and it's history. There should be a separate article for the company itself. This is blatant corporate promotion.98.194.39.86 (talk)15:59, 13 July 2017 (UTC)

I agree, and they are still doing it. I searched for "Advanced RISC Machine" and I gotArm Holdings.Sam Tomato (talk)01:13, 8 February 2018 (UTC)
That's broken. I fixedAdvanced RISC Machine to go toARM architecture rather thanArm Holdings;Acorn RISC Machine went toARM Ltd for about an hour and a half after a move before it was fixed to go toARM architecture.Guy Harris (talk)01:35, 8 February 2018 (UTC)

Why is Cortex (only) mentioned in the 32-bit architecture infobox

@Guy Harris: Why is Cortex (only) mentioned in the 32-bit architecture infobox? TheARM Cortex-A implements the 64-bit architecture. Also ARM and other companies that have implemented the architectures of the 32-bit variety that aren't called Cortex, seeList of ARM microarchitectures.Jonpatterns (talk)18:11, 22 April 2018 (UTC)

EDIT Most of the ARM cores using non-Legacy architecture are called Cortex. But the point regarding other companies stands (List_of_ARM_microarchitectures#Designed_by_third_parties). To my mind why mention Cortex in the infobox that is for Architecture when Cortex just an example of an implementation.Jonpatterns (talk)18:19, 22 April 2018 (UTC)
The 32-bit infobox was split into two infoboxes, tagged "(Cortex)" and "(Legacy)", inthis edit.@Sbmeirow: why was the infobox split (and why was the "v6-M and v7-and-later" box was tagged "(Cortex)")? I'm not convinced it needed to be split at all; yes, v7 introduced new features, but so did earlier new versions. Furthermore:
  • much of the stuff is duplicated in the two infoboxes;
  • the "Extensions" differ, but Thumb-2 and DSP, whilst only in the "Cortex" infobox, actually appeared in earlier versions of the architecture;
  • this page suggests that VFP also appeared in earlier versions of the architecture;
so maybe thecorrect fix is to put the two 32-bit infoboxes back together.Guy Harris (talk)18:57, 22 April 2018 (UTC)

SVE and Fujitsu

My believe is that the main developer of SVE is not just ARM, but also Fujitsu, and SVE is heavily influenced by AVX-512, by extending it further to allow variable vector length, and by Fujitsu's previous HPC processor based on Sparc architecture. I have seen many presentations by Fujitsu on SVE, and their development of their own compiler that is automatically vectorizing code to use with SVE, but I actually do not know if SVE was defined by ARM before that, or Fujitsu cooperated with ARM to develop the instruction set itself.2A02:168:F609:0:DA58:D7FF:0:F02 (talk)15:00, 16 December 2018 (UTC)

Requested Addition by Arm

Hello, I work for Arm. I would like to request an addition to this page, as it currently makes no mention of the PSA, a crucial part of the Arm architecture.

The suggested addition is:

Platform Security Architecture

Platform Security Architecture (PSA)[1] is an architecture-agnostic security framework intended to help secure Internet of Things (IoT) devices built on system-on-a-chip (SoC) processors. It was introduced by Arm in 2017[2] at the annual TechCon event[3] and will be first used on Arm Cortex-M processor cores intended for microcontroller use. The PSA includes freely available threat models and security analyses that demonstrate the process for deciding on security features[4] in common IoT products. The PSA also provides freely downloadable application programming interface (API) packages[5], architectural specifications, open-source firmware implementations, and related test suites.

Thanks!217.140.106.54 (talk)15:24, 6 March 2019 (UTC)

References

software operating system

one who took the Public Domain— Precedingunsigned comment added by49.147.33.51 (talk)05:04, 17 June 2019 (UTC)

ARMv8.3-A and the new FJCVTZS instruction

In SectionARMv8.3-A: "Improved JavaScript data type conversion support (AArch64 and AArch32); e.g. the new FJCVTZS instruction sets a flag when the conversion to 32-bit signed integer is exact, excluding −0, so that the next instruction can branch in this case."

Actually the main feature for JavaScript is that one gets a result modulo 232 (e.g. useful for the bitwise operations). Even though the source mentions the flag for exactness and its usefulness for JavaScript, I couldn't find in the ECMAScript standard where this flag can be used (even though one can imagine code that may use this flag as an optimization... but probably never in practical code).Vincent Lefèvre (talk)15:58, 11 July 2019 (UTC)

A Commons file used on this page has been nominated for deletion

The following Wikimedia Commons file used on this page has been nominated for deletion:

Participate in the deletion discussion at thenomination page. —Community Tech bot (talk)15:24, 17 January 2020 (UTC)

Missing Operating Systems

I'd like to see a listing for postmarketOS.RichMorin (talk)19:07, 22 August 2020 (UTC)

Logo

Is the logo actually for the ARM architecture, or is it just the logo of Arm Holdings?120.159.128.133 (talk)14:03, 9 October 2020 (UTC)

Page name

Why has this page been renamed from "ARM architecture" to "ARM (architecture)"? I'm surprised because this doesn't follow the usual names inCategory:Instruction set architectures, such asClipper architecture,IBM System/360 architecture,Mill architecture,MIPS architecture,PDP-11 architecture,IBM POWER instruction set architecture,TRIPS architecture,Unisys 2200 Series system architecture. —Vincent Lefèvre (talk)22:45, 9 October 2020 (UTC)

@Anthony Appleyard: And the only comment onthe contested move appears to have been negative.Guy Harris (talk)22:55, 9 October 2020 (UTC)

Requested move 10 October 2020

The following is a closed discussion of arequested move.Please do not modify it. Subsequent comments should be made in a new section on the talk page. Editors desiring to contest the closing decision should consider amove review after discussing it on the closer's talk page. No further edits should be made to this discussion.

The result of the move request was:Not moved.(closed by non-admin page mover)--Calidum02:44, 22 October 2020 (UTC)



ARM architectureARM (architecture)ARM (architecture) – minor nitpick: disambiguator in brackets 120.159.128.133 (talk)13:39, 9 October 2020 (UTC)

This is a contested technical request (permalink).Anthony Appleyard (talk)05:27, 10 October 2020 (UTC)
IBM System/370 covers both the family of computers and its instruction set architecture.IBM System/390 does the same.z/Architecture covers the instruction set architecture (the name of which explicitly includes the word "Architecture"); there are separate pages for 1) the microprocessors that implement it and 2) the systems built from those microprocessors.
Clipper architecture is a page that covers both the Clipper line of chips and its instruction set architecture; arguably, it should be called "Clipper (microprocessor family)". This would be similar to, for example, theVAX page, which has a section describing the instruction set, but which covers more than just the instruction set.SPARC is another such page, as areRISC-V andPowerPC.
MIPS architecture covers the instruction set;MIPS architecture processors andList of MIPS architecture processors cover the implementations.
ARM architecture covers the instruction set, with all of its different versions, profiles, "execution states" ("AArch32" and "AArch64", although they don't call them "application architectures" or whatever "AArch" is supposed to stand for), and instruction sets (AArch32, and the only execution state of pre-ARMv8-A processors, support the 32-bit ARM instruction set, called "A32" for ARMv8-A, and may also support the Thumb and Thumb-2 instructions, called "T32" for ARMv8-A - the R and M profiles are different there - and AArch64 supports the 64-bit A64 instruction set), although some of it has been moved intoAArch64. There are various pages covering ARM's and other vendors' implementations of the architecture.
WP:BRACKETDIS points to the same section thatWP:NATURALDIS,WP:COMMADIS, andWP:DESCRIPDIS point to (and, in fact, I think thecorrect link isWP:PARENDIS, as they list that, notWP:BRACKETDIS, under "Policy shortcuts"). The first choice they offer for disambiguation is "Natural disambiguation", and this seems to fit this case and the other "XXX architecture" cases.Guy Harris (talk)05:28, 11 October 2020 (UTC)
The discussion above is closed.Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.

Update desperately needed

As of right now, this article describes the "now" as it was in 2011, at the latest, with ARM being described as a 32-bit architecture. It then mentions in the lead that it has beenannounced that 64-bit architecture is coming in the ARMv8-A. The entireARM architecture#64/32-bit architecture section is a series of announcement after announcement, over a period of years, of successive plans for the ARMv8-A, giving the impression that the company keeps announcing things one after another without ever actually accomplishing any of it. If these thingshave occurred, then the series of events should describe what has beenreleased; after innovations have been released, it's no longer relevant to tell us that they wereannounced. And the lead should reflect the current state of the architecture, not what it was seven years ago.Largoplazo (talk)11:54, 22 April 2018 (UTC)

I think there may be confusion over the 'announcements'; because ARM does not manufacturer chips it just designs. Perhaps the announcements are stating a design is complete, hence its part of the job is done. It could be useful to state which manufacturers have created chips based on each of the designs.Jonpatterns (talk)12:17, 22 April 2018 (UTC)
I see your point, I think, but then it would be clearer to indicate that new specs have been "released". And the lead still speaks of the 32-bit architecture as the current state of the technology.Largoplazo (talk)12:25, 22 April 2018 (UTC)
I've updated the lede to make it clear that 64-bit is now support by ARMv8. To my knowledge all the architectures feature 32bit length instructions, including ARMv8 which has 64-bit addressing and arithmetic. The only exception being the Thumb which can use 16-bit length instructions.Jonpatterns (talk)13:07, 22 April 2018 (UTC)
32-bit is still current. It's a little confusing because there are two main instruction sets, AArch32 and AArch64. When ARMv8 was released it was believed to be the new 64-bit version, keeping compatibility with AArch32 too, but some ARMv8, i.e. the later ARMv8-R are only 32-bit. That is, all the microcontrollers are still only 32-bit (Thumb is however a complication, and yes, with 16-bit instructions).comp.arch (talk)21:49, 10 October 2018 (UTC)
Confusingly, there's:
  • the"Arm architecture", which incorporates:
    • theCPU architecture, which has three profiles (A, R, and M, nudge nudge wink wink) and multiple versions (currently 6, 7 and 8);
    • multiplesystem architectures;
    • multiplesecurity architectures;
    • threeinstruction sets - A32 (the 32-bit-instruction/32-bit-data-and-addresses ISA, descended from the original ARM ISA), T32 (the variable-length-instruction/32-bit-data-and-addresses ISA, descended from Thumb and Thumb2), and A64 (the 32-bit-instruction/64-bit-data-and-addresses ISA).
The A profile of ARMv8 has, in addition, two "execution states", AArch64 and AArch32. AArch64 includes:
  • "The AArch64 Application Level Architecture";
  • "The AArch64 Instruction Set", which is A64;
  • "The AArch64 System Level Architecture";
and AArch32 includes:
  • "The AArch32 Application Level Architecture";
  • "The AArch32 Instruction Sets", plural, which are T32 and A32;
  • "The AArch32 System Level Architecture".
ARMv7-A and ARMv7-R have two instruction sets, "ARM" and "Thumb"; "Thumb" includes Thumb-2. ARMv6, apparently, is similar, but Thumb-2 is an extension.Guy Harris (talk)19:31, 12 January 2019 (UTC)
  • ARM64 Microsofts release of .NET 5.0 includes ARM64 support now gives their 5 million programmer base access to compile on this instruction set. If anyone out there has deeper knowledge of ARM64 instruction set now is the time to create a spinoff page describing the instruction set. TheKevlar 13:20, 15 November 2020 (UTC)

December 2020 edit

Thisedit request by an editor with a conflict of interest has now been answered.

After completing the creation of thePSA Certified page, I am looking to update outdated information elsewhere on Wikipedia. A revised version of the Platform Security Architecture subsection of this page has been rewritten and expanded [Platform Security Architecture atuser:RichardDigital47/sandbox. Please also view my userpage to read my COI declaration.RichardDigital47 (talk)21:42, 9 December 2020 (UTC)

 DoneFerkijel (talk)10:33, 28 March 2021 (UTC)

Wikipedia is not an indiscriminate collection of information

PerWikipedia:What Wikipedia is not#Wikipedia is not an indiscriminate collection of information I propose that we nuke the multiple long lists of operating systems. If someone wishes to split out a new articleList of operating systems that support the ARM architecture from out ofList of operating systems, they are free to do so, but the reality is that there are now very few operating systems thatdon't support ARM. --Guy Macon (talk)14:43, 9 May 2021 (UTC)

I agree. IMHO, this should be transformed into a text saying how this evolved in the history. And perhaps list the operating systems specifically designed for ARM (with some explanations). —Vincent Lefèvre (talk)15:22, 9 May 2021 (UTC)

ARM-based chips and Intel

I doubt that inARM architecture#Core licence, paragraph "Companies that have developed chips with cores designed by Arm Holdings [...]", the mention ofIntel is correct. There is no source and the only ARM-based chips listed inTemplate:Intel processors areStrongARM andXScale, whose cores have been designed byDEC and Intel respectively (the latter being a redesign or the former). The articleIntel will start building ARM-based smartphone chips (The Verge, August 2016) mentions a licensing agreement with ARM to "produce ARM-based chips in Intel factories", but this does not mean chips developed by Intel itself, but rather by other companies.Vincent Lefèvre (talk)10:11, 29 December 2019 (UTC)

TheIntel Stratix 10 Hard Processor System Technical Reference Manual explicitly calls outARM_Cortex-A53 being used in the FPGA's hard processor system (HPS), which is ARM IP, yes? The ARM core is part of the fabric die, which is manufactured by Intel.All densities in the Stratix 10 family will be available with an integrated 64-bit ARM quad-core Cortex -A53 hard processor system (HPS). Intel has been fabbing ARM-designed cores as part of Stratix 10 since beforeAltera was acquired in 2015. What's unclear is if Intel has utilized the architectural license to build any processors adhering to the ARM architecture outside ofStrongARM andXScale.Tfinn (talk)05:08, 21 October 2021 (UTC)

Conditional execution example while..do vs. do..while.

While great work was done with the gcd algorithm conversion from 'C' to assembler, the assembler variant actually implemented a do..while loop rather than the 'C' which shows a while..do loop.

The most important point here is that the GT/LT calculations were always being evaluated before the NE test was being made.

While the EQ test would mean that the comparisons would just fall through, adding the test label and a branch to test outside the loop reflects the C code far more closely. Note that the original 'else' part of the 'C' is also not reflected in the pseudocode/assembly.was implicitly baked into the assembly based upon the GT/LT flags set by the CMP.

There was a comment "(no if(a<b) needed since a!=b is checked in while condition)" which seems to have forgotten that the prior command may change the value of a. As SUBGTS/SUBLTS also tests/sets the condition registers, we only need to do the explicit CMP at the top of the code.

These edits are more congruent with the 'C', and represent more optimal code.


(20040302 (talk)10:48, 16 March 2022 (UTC) )

20040302: Your changes were incorrect. If SUBGTS is executed, you have r0 > r1 and you are doing r0 − r1, so that the condition flags that are set correspond to GT. If SUBLTS is executed, you have r1 > r0 and you are doing r1 − r0, so that the condition flags that are set also correspond to GT. Thus if r0 and r1 are different at the start of the iteration, you'll always have the condition flags that correspond to GT at the start of the next iteration, whatever the new value of r0 or r1. This is not what you want. Because r0 or r1 has changed, the comparison is always needed before doing the subtraction, in order to know which subtraction should be done (r0 − r1 or r1 − r0), and setting the condition flags with the subtraction is useless. For instance, if you do the subtraction new_r0 = old_r0 − r1 and set the condition flags, what you get is the set of flags for the comparison between old_r0 and r1; but what is needed for the next iteration is set of flags for the comparison between new_r0 and r1.
Note also that the pseudocode does not intend to reflect the algorithm written in C: the algorithm written in C is the usual one, and what is shown is that little transformation is needed to get the pseudocode, then the ARM code. —Vincent Lefèvre (talk)01:53, 17 March 2022 (UTC)

Vincent Lefèvre, With respect, I couldn't agree with you less. It's correct that I should have used SUBGT/CMP pairs - but the logic of the original code is poor, and it is always important - when converting algorithms between languages / systems to replicate the underlying algorithm.

The fact that the current code switches from a while/do to a do/while is just an error. The code should choose just one, and keep to it. The inline rationale is unreasonable.

We see in the pseudocode that the "else" has now vanished - and therefore the algorithm is NOT the same (despite the comments) ...


if(GT) a-=B; if(LT) b -= a; //unwraps to two discrete if statements.

The assembly doesn't reflect the pseudocode either.

Instead it uses something more implicit to the original C - with the else being implied by the GT/LT test (being mutually exclusive).

Likewise, no consideration has been taken for timing. SUBGT is a 3pt operation whereas CMP is a 1pt operation.

Consider the following - (1) this follows a while..do, merely by branch to While at the beginning - a one instruction cost per function call, but saves time whenever r0/r1 start equal.

(2) with the addition of a cheap CMP we reflect the IF() found in the pseudocode, and likewise can afford to do both a r0-r1 and r1-r0 in a single loop. However, it is true it only saves a single loop, so I think it would be optimal to leave it out; but to do so it would be better to rewrite the pseudocode to use an else.

; assign a to register r0, b to r1BWhile; if the loop is not entered, we can safely returnLoop:SUBGTr0,r0,r1; if "GT" (Greater Than), a = a-b. and set condition flags.;        CMP  r0, r1        ; saves one loop at the cost of an instruction.SUBLTr1,r1,r0; if "LT" (Less Than), b = b-a. and set condition flags.While:CMPr0,r1; compare a and b and set condition flags.BNELoop; if "NE" (Not Equal), then loopBlr; if the loop is not entered, we can safely return

Regardless, (and mea culpa too) ALL of this violatesWP:NOR. We should be citing sources, rather than discussing code styles. (20040302 (talk)13:49, 17 March 2022 (UTC))

20040302: It is not a conversion of an algorithm, just a Euclidean GCD directly implemented in ARM. When writing assembly code manually, we almost never seek to literally convert high-level algorithms. Instead, we seek to write optimal code directly. Even compilers do not convert C code literally; they use some known transformations to generate better code. The current code is not a do/while since the comparison is donefirst; it is just ARM-specific code that is never expressed like that in algorithms. BTW, the opposite change to what you suggest above was done in 2006, inSpecial:Diff/35616155 with the comment "Assembly code streamlined so it better reflects structure of while loop". So someone thinks that this code better represents the while loop than your code. Anyway, as I've said, I don't think that one should seek to be the closest to the C code.
Concerning the timing, this depends on the processor. What you are doing with your proposed code is actually replace a SUBGT/SUBLT sequence by an unconditional branch (the "B" on the first line) in the executed instructions. IIRC, on the early ARMs, a branch was taking 2 or 3 cycles, so that your code is no better (and potentially worse). Moreover, the current code is shorter.
I agree aboutWP:NOR. But I think that this is a common example, and one should probably be able to find a proper source. I have an old book on ARM somewhere at home; I could check when I have some time.
Vincent Lefèvre (talk)15:33, 17 March 2022 (UTC)

CPU cache?

Does the CPU have cache? Why is this not addressed in this article? Is there some systemic problem at Wikipedia?

DO NOT PUBLISH IP61.68.121.74 (talk)12:45, 25 January 2023 (UTC)

This is about the architecture, not the CPUs (except for the history). SeeComparison of ARM processors for the processors. —Vincent Lefèvre (talk)18:10, 25 January 2023 (UTC)
In particular, there areinstruction set architectures and there aremicroarchitectures. A given instruction set architecture can have implementations with a CPU cache and implementations without a CPU cache; the only way that a cache would be taken into account in the instrution set architecture would be if that architecture specified that an implementation could have a cache and, perhaps, had, for example, instructions to prefetch into a cache or to remove entries from a cache, which would be no-ops on implementations without a cache.
The microarchitecture of a given implementation might include a cache.
This page is about ARM instruction set architectures, so all it can say about CPU caches is whether any of the versions of any of those instruction set architectures have cache instructions of the sort mentioned above.
(Also, if you're editing without an account, the IP address from which you edited a Wikipedia page is in the page history, so you can't hide it.)Guy Harris (talk)20:48, 25 January 2023 (UTC)
Retrieved from "https://en.wikipedia.org/w/index.php?title=Talk:ARM_architecture_family/Archive_4&oldid=1269595501"
Category:

[8]ページ先頭

©2009-2025 Movatter.jp