If you're using linux on your ARM, I think the architecture you're using is not revelant since linux has done the job for you. If you're interested by the peripherals, problem is there is no such "standard" for ARM, any vendor/flavor/family has its own peripherals so you have to get the processor user manual from its manufacturer.
If you're using your ARM in a low-level fashion (linux drivers, bare-metal or low-level OS like FreeRTOS), I think "ARM System Developer's Guide" from Elsevier is a really good reference.
I would recommend you to buy an ARM toolkit. (LPC1768 and LPC1788 from NXP are both appropriate microcontrollers to start programming). just a book without any real world material can't give you enough insight into the programming concepts of a microcontroller. I think digging into the technical user forums on the net and reading and programming available programs shipped with the tool-kits is the best way to learn.
I think you must first choice type of ARM such as ATMEL, NXP, .... Then select its version related to your work due to that features. Then read its datasheet and manual and use example code to implement and drive internal peripherals. For example Atmel has "asf-standalone-archive" that contain peripherals driver and example code.